Error reporting patches

-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJV/AbJAAoJEDhwtADrkYZTh0gQAKahvV67+cg6/8R/MesRQKu+
 NNQWPT0xXBZAVkZ8Dl/a5FuWM9qqMTFNaPgL+Vk4SMUEoi3PmTanVP1OMWq9lKtv
 mWuZTOdJeOc0M8TDuI3OKFVhwqHwugBvsf+e56ai3ofdbwT0ANMbhN/m8jpJuJ1r
 4c/sGsInBkSrh0aJwJ/LAknYkeRNwmJYh21KnDUulydhhHFRGGi5D5J9mZVk2KVJ
 icXieBhgwWU/kCecAwK/CsrZHqL4Cy2smO9ENQqdATH3or3lOl9jk3qmvK7IO47F
 bjJSIirVf8hNaBqYFA4asXfpwHNcrit91MGH20GgCZNZZj2egcerTS5er8p4dDO4
 Tmp7CFSXU68d+NOt1gSygr8lOw87RmXHMvi4p6OgA7VOy3bwYhmiGWmQ3M8zE49X
 RblTs5niWX5hDSvwr0aqDsD5c1GxIhxz+/zeW7PqrfXC3lzNzJGeWUt8TEOuWYok
 7AU4BV7/tMqmpJaB0R0JCMNRHxvF9u5j8aX7i1/nerRMAnXr8KAbTo+p/npUsOVz
 nB2Qn6W+BtOa9zCesKdu1C6x7UxVauOuyB+0u1fzEaFskNOuvfZM4IUxSQh4XsNQ
 YgmIKvtpRuGNxPmbpu/MukRQ8bjb9hF8rwKX0KbupM+KMkbfHxjByr+BtTpwMA8a
 FmzT7AP8gTLSZmaeV9Ke
 =QmVV
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2015-09-18' into staging

Error reporting patches

# gpg: Signature made Fri 18 Sep 2015 13:42:49 BST using RSA key ID EB918653
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com>"
# gpg:                 aka "Markus Armbruster <armbru@pond.sub.org>"

* remotes/armbru/tags/pull-error-2015-09-18:
  memory: Fix bad error handling in memory_region_init_ram_ptr()
  loader: Fix memory_region_init_resizeable_ram() error handling
  Fix bad error handling after memory_region_init_ram()
  error: New error_fatal
  MAINTAINERS: Add "Error reporting" entry
  error: Copy location information in error_copy()
  hmp: Allow for error message hints on HMP
  error: only prepend timestamp on stderr

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell 2015-09-18 14:41:53 +01:00
commit ffa4822c01
70 changed files with 213 additions and 152 deletions

View File

@ -903,6 +903,14 @@ M: Alexander Graf <agraf@suse.de>
S: Maintained S: Maintained
F: device_tree.[ch] F: device_tree.[ch]
Error reporting
M: Markus Armbruster <armbru@redhat.com>
S: Supported
F: include/qapi/error.h
F: include/qemu/error-report.h
F: util/error.c
F: util/qemu-error.c
GDB stub GDB stub
L: qemu-devel@nongnu.org L: qemu-devel@nongnu.org
S: Odd Fixes S: Odd Fixes

View File

@ -229,7 +229,7 @@ qemu_irq *armv7m_init(MemoryRegion *system_memory, int mem_size, int num_irq,
/* Hack to map an additional page of ram at the top of the address /* Hack to map an additional page of ram at the top of the address
space. This stops qemu complaining about executing code outside RAM space. This stops qemu complaining about executing code outside RAM
when returning from an exception. */ when returning from an exception. */
memory_region_init_ram(hack, NULL, "armv7m.hack", 0x1000, &error_abort); memory_region_init_ram(hack, NULL, "armv7m.hack", 0x1000, &error_fatal);
vmstate_register_ram_global(hack); vmstate_register_ram_global(hack);
memory_region_add_subregion(system_memory, 0xfffff000, hack); memory_region_add_subregion(system_memory, 0xfffff000, hack);

View File

@ -259,7 +259,7 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem,
/* Internal ROM */ /* Internal ROM */
memory_region_init_ram(&s->irom_mem, NULL, "exynos4210.irom", memory_region_init_ram(&s->irom_mem, NULL, "exynos4210.irom",
EXYNOS4210_IROM_SIZE, &error_abort); EXYNOS4210_IROM_SIZE, &error_fatal);
vmstate_register_ram_global(&s->irom_mem); vmstate_register_ram_global(&s->irom_mem);
memory_region_set_readonly(&s->irom_mem, true); memory_region_set_readonly(&s->irom_mem, true);
memory_region_add_subregion(system_mem, EXYNOS4210_IROM_BASE_ADDR, memory_region_add_subregion(system_mem, EXYNOS4210_IROM_BASE_ADDR,
@ -275,7 +275,7 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem,
/* Internal RAM */ /* Internal RAM */
memory_region_init_ram(&s->iram_mem, NULL, "exynos4210.iram", memory_region_init_ram(&s->iram_mem, NULL, "exynos4210.iram",
EXYNOS4210_IRAM_SIZE, &error_abort); EXYNOS4210_IRAM_SIZE, &error_fatal);
vmstate_register_ram_global(&s->iram_mem); vmstate_register_ram_global(&s->iram_mem);
memory_region_add_subregion(system_mem, EXYNOS4210_IRAM_BASE_ADDR, memory_region_add_subregion(system_mem, EXYNOS4210_IRAM_BASE_ADDR,
&s->iram_mem); &s->iram_mem);
@ -284,14 +284,14 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem,
mem_size = ram_size; mem_size = ram_size;
if (mem_size > EXYNOS4210_DRAM_MAX_SIZE) { if (mem_size > EXYNOS4210_DRAM_MAX_SIZE) {
memory_region_init_ram(&s->dram1_mem, NULL, "exynos4210.dram1", memory_region_init_ram(&s->dram1_mem, NULL, "exynos4210.dram1",
mem_size - EXYNOS4210_DRAM_MAX_SIZE, &error_abort); mem_size - EXYNOS4210_DRAM_MAX_SIZE, &error_fatal);
vmstate_register_ram_global(&s->dram1_mem); vmstate_register_ram_global(&s->dram1_mem);
memory_region_add_subregion(system_mem, EXYNOS4210_DRAM1_BASE_ADDR, memory_region_add_subregion(system_mem, EXYNOS4210_DRAM1_BASE_ADDR,
&s->dram1_mem); &s->dram1_mem);
mem_size = EXYNOS4210_DRAM_MAX_SIZE; mem_size = EXYNOS4210_DRAM_MAX_SIZE;
} }
memory_region_init_ram(&s->dram0_mem, NULL, "exynos4210.dram0", mem_size, memory_region_init_ram(&s->dram0_mem, NULL, "exynos4210.dram0", mem_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->dram0_mem); vmstate_register_ram_global(&s->dram0_mem);
memory_region_add_subregion(system_mem, EXYNOS4210_DRAM0_BASE_ADDR, memory_region_add_subregion(system_mem, EXYNOS4210_DRAM0_BASE_ADDR,
&s->dram0_mem); &s->dram0_mem);

View File

@ -281,7 +281,7 @@ static void calxeda_init(MachineState *machine, enum cxmachines machine_id)
sysram = g_new(MemoryRegion, 1); sysram = g_new(MemoryRegion, 1);
memory_region_init_ram(sysram, NULL, "highbank.sysram", 0x8000, memory_region_init_ram(sysram, NULL, "highbank.sysram", 0x8000,
&error_abort); &error_fatal);
memory_region_add_subregion(sysmem, 0xfff88000, sysram); memory_region_add_subregion(sysmem, 0xfff88000, sysram);
if (bios_name != NULL) { if (bios_name != NULL) {
sysboot_filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); sysboot_filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);

View File

@ -266,7 +266,7 @@ static int integratorcm_init(SysBusDevice *dev)
s->cm_refcnt_offset = muldiv64(qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL), 24, s->cm_refcnt_offset = muldiv64(qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL), 24,
1000); 1000);
memory_region_init_ram(&s->flash, OBJECT(s), "integrator.flash", 0x100000, memory_region_init_ram(&s->flash, OBJECT(s), "integrator.flash", 0x100000,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->flash); vmstate_register_ram_global(&s->flash);
memory_region_init_io(&s->iomem, OBJECT(s), &integratorcm_ops, s, memory_region_init_io(&s->iomem, OBJECT(s), &integratorcm_ops, s,

View File

@ -124,7 +124,7 @@ static void mainstone_common_init(MemoryRegion *address_space_mem,
/* Setup CPU & memory */ /* Setup CPU & memory */
mpu = pxa270_init(address_space_mem, mainstone_binfo.ram_size, cpu_model); mpu = pxa270_init(address_space_mem, mainstone_binfo.ram_size, cpu_model);
memory_region_init_ram(rom, NULL, "mainstone.rom", MAINSTONE_ROM, memory_region_init_ram(rom, NULL, "mainstone.rom", MAINSTONE_ROM,
&error_abort); &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_set_readonly(rom, true); memory_region_set_readonly(rom, true);
memory_region_add_subregion(address_space_mem, 0, rom); memory_region_add_subregion(address_space_mem, 0, rom);

View File

@ -1599,7 +1599,7 @@ static void musicpal_init(MachineState *machine)
memory_region_add_subregion(address_space_mem, 0, ram); memory_region_add_subregion(address_space_mem, 0, ram);
memory_region_init_ram(sram, NULL, "musicpal.sram", MP_SRAM_SIZE, memory_region_init_ram(sram, NULL, "musicpal.sram", MP_SRAM_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(address_space_mem, MP_SRAM_BASE, sram); memory_region_add_subregion(address_space_mem, MP_SRAM_BASE, sram);

View File

@ -3872,7 +3872,7 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
s->sdram_size); s->sdram_size);
memory_region_add_subregion(system_memory, OMAP_EMIFF_BASE, &s->emiff_ram); memory_region_add_subregion(system_memory, OMAP_EMIFF_BASE, &s->emiff_ram);
memory_region_init_ram(&s->imif_ram, NULL, "omap1.sram", s->sram_size, memory_region_init_ram(&s->imif_ram, NULL, "omap1.sram", s->sram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->imif_ram); vmstate_register_ram_global(&s->imif_ram);
memory_region_add_subregion(system_memory, OMAP_IMIF_BASE, &s->imif_ram); memory_region_add_subregion(system_memory, OMAP_IMIF_BASE, &s->imif_ram);

View File

@ -2271,7 +2271,7 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegion *sysmem,
s->sdram_size); s->sdram_size);
memory_region_add_subregion(sysmem, OMAP2_Q2_BASE, &s->sdram); memory_region_add_subregion(sysmem, OMAP2_Q2_BASE, &s->sdram);
memory_region_init_ram(&s->sram, NULL, "omap2.sram", s->sram_size, memory_region_init_ram(&s->sram, NULL, "omap2.sram", s->sram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->sram); vmstate_register_ram_global(&s->sram);
memory_region_add_subregion(sysmem, OMAP2_SRAM_BASE, &s->sram); memory_region_add_subregion(sysmem, OMAP2_SRAM_BASE, &s->sram);

View File

@ -122,7 +122,7 @@ static void sx1_init(MachineState *machine, const int version)
/* External Flash (EMIFS) */ /* External Flash (EMIFS) */
memory_region_init_ram(flash, NULL, "omap_sx1.flash0-0", flash_size, memory_region_init_ram(flash, NULL, "omap_sx1.flash0-0", flash_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(flash); vmstate_register_ram_global(flash);
memory_region_set_readonly(flash, true); memory_region_set_readonly(flash, true);
memory_region_add_subregion(address_space, OMAP_CS0_BASE, flash); memory_region_add_subregion(address_space, OMAP_CS0_BASE, flash);
@ -166,7 +166,7 @@ static void sx1_init(MachineState *machine, const int version)
(dinfo = drive_get(IF_PFLASH, 0, fl_idx)) != NULL) { (dinfo = drive_get(IF_PFLASH, 0, fl_idx)) != NULL) {
MemoryRegion *flash_1 = g_new(MemoryRegion, 1); MemoryRegion *flash_1 = g_new(MemoryRegion, 1);
memory_region_init_ram(flash_1, NULL, "omap_sx1.flash1-0", flash1_size, memory_region_init_ram(flash_1, NULL, "omap_sx1.flash1-0", flash1_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(flash_1); vmstate_register_ram_global(flash_1);
memory_region_set_readonly(flash_1, true); memory_region_set_readonly(flash_1, true);
memory_region_add_subregion(address_space, OMAP_CS1_BASE, flash_1); memory_region_add_subregion(address_space, OMAP_CS1_BASE, flash_1);

View File

@ -213,7 +213,7 @@ static void palmte_init(MachineState *machine)
/* External Flash (EMIFS) */ /* External Flash (EMIFS) */
memory_region_init_ram(flash, NULL, "palmte.flash", flash_size, memory_region_init_ram(flash, NULL, "palmte.flash", flash_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(flash); vmstate_register_ram_global(flash);
memory_region_set_readonly(flash, true); memory_region_set_readonly(flash, true);
memory_region_add_subregion(address_space_mem, OMAP_CS0_BASE, flash); memory_region_add_subregion(address_space_mem, OMAP_CS0_BASE, flash);

View File

@ -2078,11 +2078,11 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space,
/* SDRAM & Internal Memory Storage */ /* SDRAM & Internal Memory Storage */
memory_region_init_ram(&s->sdram, NULL, "pxa270.sdram", sdram_size, memory_region_init_ram(&s->sdram, NULL, "pxa270.sdram", sdram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->sdram); vmstate_register_ram_global(&s->sdram);
memory_region_add_subregion(address_space, PXA2XX_SDRAM_BASE, &s->sdram); memory_region_add_subregion(address_space, PXA2XX_SDRAM_BASE, &s->sdram);
memory_region_init_ram(&s->internal, NULL, "pxa270.internal", 0x40000, memory_region_init_ram(&s->internal, NULL, "pxa270.internal", 0x40000,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->internal); vmstate_register_ram_global(&s->internal);
memory_region_add_subregion(address_space, PXA2XX_INTERNAL_BASE, memory_region_add_subregion(address_space, PXA2XX_INTERNAL_BASE,
&s->internal); &s->internal);
@ -2212,11 +2212,11 @@ PXA2xxState *pxa255_init(MemoryRegion *address_space, unsigned int sdram_size)
/* SDRAM & Internal Memory Storage */ /* SDRAM & Internal Memory Storage */
memory_region_init_ram(&s->sdram, NULL, "pxa255.sdram", sdram_size, memory_region_init_ram(&s->sdram, NULL, "pxa255.sdram", sdram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->sdram); vmstate_register_ram_global(&s->sdram);
memory_region_add_subregion(address_space, PXA2XX_SDRAM_BASE, &s->sdram); memory_region_add_subregion(address_space, PXA2XX_SDRAM_BASE, &s->sdram);
memory_region_init_ram(&s->internal, NULL, "pxa255.internal", memory_region_init_ram(&s->internal, NULL, "pxa255.internal",
PXA2XX_INTERNAL_SIZE, &error_abort); PXA2XX_INTERNAL_SIZE, &error_fatal);
vmstate_register_ram_global(&s->internal); vmstate_register_ram_global(&s->internal);
memory_region_add_subregion(address_space, PXA2XX_INTERNAL_BASE, memory_region_add_subregion(address_space, PXA2XX_INTERNAL_BASE,
&s->internal); &s->internal);

View File

@ -151,13 +151,13 @@ static void realview_init(MachineState *machine,
low_ram_size = ram_size - 0x20000000; low_ram_size = ram_size - 0x20000000;
ram_size = 0x20000000; ram_size = 0x20000000;
memory_region_init_ram(ram_lo, NULL, "realview.lowmem", low_ram_size, memory_region_init_ram(ram_lo, NULL, "realview.lowmem", low_ram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(ram_lo); vmstate_register_ram_global(ram_lo);
memory_region_add_subregion(sysmem, 0x20000000, ram_lo); memory_region_add_subregion(sysmem, 0x20000000, ram_lo);
} }
memory_region_init_ram(ram_hi, NULL, "realview.highmem", ram_size, memory_region_init_ram(ram_hi, NULL, "realview.highmem", ram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(ram_hi); vmstate_register_ram_global(ram_hi);
low_ram_size = ram_size; low_ram_size = ram_size;
if (low_ram_size > 0x10000000) if (low_ram_size > 0x10000000)
@ -353,7 +353,7 @@ static void realview_init(MachineState *machine,
BootROM happens to be in ROM/flash or in memory that isn't clobbered BootROM happens to be in ROM/flash or in memory that isn't clobbered
until after Linux boots the secondary CPUs. */ until after Linux boots the secondary CPUs. */
memory_region_init_ram(ram_hack, NULL, "realview.hack", 0x1000, memory_region_init_ram(ram_hack, NULL, "realview.hack", 0x1000,
&error_abort); &error_fatal);
vmstate_register_ram_global(ram_hack); vmstate_register_ram_global(ram_hack);
memory_region_add_subregion(sysmem, SMP_BOOT_ADDR, ram_hack); memory_region_add_subregion(sysmem, SMP_BOOT_ADDR, ram_hack);

View File

@ -913,7 +913,7 @@ static void spitz_common_init(MachineState *machine,
sl_flash_register(mpu, (model == spitz) ? FLASH_128M : FLASH_1024M); sl_flash_register(mpu, (model == spitz) ? FLASH_128M : FLASH_1024M);
memory_region_init_ram(rom, NULL, "spitz.rom", SPITZ_ROM, &error_abort); memory_region_init_ram(rom, NULL, "spitz.rom", SPITZ_ROM, &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_set_readonly(rom, true); memory_region_set_readonly(rom, true);
memory_region_add_subregion(address_space_mem, 0, rom); memory_region_add_subregion(address_space_mem, 0, rom);

View File

@ -1231,13 +1231,13 @@ static void stellaris_init(const char *kernel_filename, const char *cpu_model,
/* Flash programming is done via the SCU, so pretend it is ROM. */ /* Flash programming is done via the SCU, so pretend it is ROM. */
memory_region_init_ram(flash, NULL, "stellaris.flash", flash_size, memory_region_init_ram(flash, NULL, "stellaris.flash", flash_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(flash); vmstate_register_ram_global(flash);
memory_region_set_readonly(flash, true); memory_region_set_readonly(flash, true);
memory_region_add_subregion(system_memory, 0, flash); memory_region_add_subregion(system_memory, 0, flash);
memory_region_init_ram(sram, NULL, "stellaris.sram", sram_size, memory_region_init_ram(sram, NULL, "stellaris.sram", sram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(system_memory, 0x20000000, sram); memory_region_add_subregion(system_memory, 0x20000000, sram);

View File

@ -71,7 +71,7 @@ static void stm32f205_soc_realize(DeviceState *dev_soc, Error **errp)
MemoryRegion *flash_alias = g_new(MemoryRegion, 1); MemoryRegion *flash_alias = g_new(MemoryRegion, 1);
memory_region_init_ram(flash, NULL, "STM32F205.flash", FLASH_SIZE, memory_region_init_ram(flash, NULL, "STM32F205.flash", FLASH_SIZE,
&error_abort); &error_fatal);
memory_region_init_alias(flash_alias, NULL, "STM32F205.flash.alias", memory_region_init_alias(flash_alias, NULL, "STM32F205.flash.alias",
flash, 0, FLASH_SIZE); flash, 0, FLASH_SIZE);
@ -84,7 +84,7 @@ static void stm32f205_soc_realize(DeviceState *dev_soc, Error **errp)
memory_region_add_subregion(system_memory, 0, flash_alias); memory_region_add_subregion(system_memory, 0, flash_alias);
memory_region_init_ram(sram, NULL, "STM32F205.sram", SRAM_SIZE, memory_region_init_ram(sram, NULL, "STM32F205.sram", SRAM_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(system_memory, SRAM_BASE_ADDRESS, sram); memory_region_add_subregion(system_memory, SRAM_BASE_ADDRESS, sram);

View File

@ -227,7 +227,7 @@ static void tosa_init(MachineState *machine)
mpu = pxa255_init(address_space_mem, tosa_binfo.ram_size); mpu = pxa255_init(address_space_mem, tosa_binfo.ram_size);
memory_region_init_ram(rom, NULL, "tosa.rom", TOSA_ROM, &error_abort); memory_region_init_ram(rom, NULL, "tosa.rom", TOSA_ROM, &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_set_readonly(rom, true); memory_region_set_readonly(rom, true);
memory_region_add_subregion(address_space_mem, 0, rom); memory_region_add_subregion(address_space_mem, 0, rom);

View File

@ -391,7 +391,7 @@ static void a15_daughterboard_init(const VexpressMachineState *vms,
/* 0x2b0a0000: PL341 dynamic memory controller: not modelled */ /* 0x2b0a0000: PL341 dynamic memory controller: not modelled */
/* 0x2e000000: system SRAM */ /* 0x2e000000: system SRAM */
memory_region_init_ram(sram, NULL, "vexpress.a15sram", 0x10000, memory_region_init_ram(sram, NULL, "vexpress.a15sram", 0x10000,
&error_abort); &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(sysmem, 0x2e000000, sram); memory_region_add_subregion(sysmem, 0x2e000000, sram);
@ -671,13 +671,13 @@ static void vexpress_common_init(MachineState *machine)
sram_size = 0x2000000; sram_size = 0x2000000;
memory_region_init_ram(sram, NULL, "vexpress.sram", sram_size, memory_region_init_ram(sram, NULL, "vexpress.sram", sram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(sysmem, map[VE_SRAM], sram); memory_region_add_subregion(sysmem, map[VE_SRAM], sram);
vram_size = 0x800000; vram_size = 0x800000;
memory_region_init_ram(vram, NULL, "vexpress.vram", vram_size, memory_region_init_ram(vram, NULL, "vexpress.vram", vram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(vram); vmstate_register_ram_global(vram);
memory_region_add_subregion(sysmem, map[VE_VIDEORAM], vram); memory_region_add_subregion(sysmem, map[VE_VIDEORAM], vram);

View File

@ -167,7 +167,7 @@ static void zynq_init(MachineState *machine)
/* 256K of on-chip memory */ /* 256K of on-chip memory */
memory_region_init_ram(ocm_ram, NULL, "zynq.ocm_ram", 256 << 10, memory_region_init_ram(ocm_ram, NULL, "zynq.ocm_ram", 256 << 10,
&error_abort); &error_fatal);
vmstate_register_ram_global(ocm_ram); vmstate_register_ram_global(ocm_ram);
memory_region_add_subregion(address_space_mem, 0xFFFC0000, ocm_ram); memory_region_add_subregion(address_space_mem, 0xFFFC0000, ocm_ram);

View File

@ -113,7 +113,7 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp)
char *ocm_name = g_strdup_printf("zynqmp.ocm_ram_bank_%d", i); char *ocm_name = g_strdup_printf("zynqmp.ocm_ram_bank_%d", i);
memory_region_init_ram(&s->ocm_ram[i], NULL, ocm_name, memory_region_init_ram(&s->ocm_ram[i], NULL, ocm_name,
XLNX_ZYNQMP_OCM_RAM_SIZE, &error_abort); XLNX_ZYNQMP_OCM_RAM_SIZE, &error_fatal);
vmstate_register_ram_global(&s->ocm_ram[i]); vmstate_register_ram_global(&s->ocm_ram[i]);
memory_region_add_subregion(get_system_memory(), memory_region_add_subregion(get_system_memory(),
XLNX_ZYNQMP_OCM_RAM_0_ADDRESS + XLNX_ZYNQMP_OCM_RAM_0_ADDRESS +

View File

@ -786,7 +786,7 @@ static int onenand_initfn(SysBusDevice *sbd)
s->otp = memset(g_malloc((64 + 2) << PAGE_SHIFT), s->otp = memset(g_malloc((64 + 2) << PAGE_SHIFT),
0xff, (64 + 2) << PAGE_SHIFT); 0xff, (64 + 2) << PAGE_SHIFT);
memory_region_init_ram(&s->ram, OBJECT(s), "onenand.ram", memory_region_init_ram(&s->ram, OBJECT(s), "onenand.ram",
0xc000 << s->shift, &error_abort); 0xc000 << s->shift, &error_fatal);
vmstate_register_ram_global(&s->ram); vmstate_register_ram_global(&s->ram);
ram = memory_region_get_ram_ptr(&s->ram); ram = memory_region_get_ram_ptr(&s->ram);
s->boot[0] = ram + (0x0000 << s->shift); s->boot[0] = ram + (0x0000 << s->shift);

View File

@ -740,7 +740,7 @@ static void *rom_set_mr(Rom *rom, Object *owner, const char *name)
memory_region_init_resizeable_ram(rom->mr, owner, name, memory_region_init_resizeable_ram(rom->mr, owner, name,
rom->datasize, rom->romsize, rom->datasize, rom->romsize,
fw_cfg_resized, fw_cfg_resized,
&error_abort); &error_fatal);
memory_region_set_readonly(rom->mr, true); memory_region_set_readonly(rom->mr, true);
vmstate_register_ram_global(rom->mr); vmstate_register_ram_global(rom->mr);

View File

@ -277,7 +277,7 @@ void axisdev88_init(MachineState *machine)
/* The ETRAX-FS has 128Kb on chip ram, the docs refer to it as the /* The ETRAX-FS has 128Kb on chip ram, the docs refer to it as the
internal memory. */ internal memory. */
memory_region_init_ram(phys_intmem, NULL, "axisdev88.chipram", INTMEM_SIZE, memory_region_init_ram(phys_intmem, NULL, "axisdev88.chipram", INTMEM_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(phys_intmem); vmstate_register_ram_global(phys_intmem);
memory_region_add_subregion(address_space_mem, 0x38000000, phys_intmem); memory_region_add_subregion(address_space_mem, 0x38000000, phys_intmem);

View File

@ -281,7 +281,7 @@ static void cg3_initfn(Object *obj)
CG3State *s = CG3(obj); CG3State *s = CG3(obj);
memory_region_init_ram(&s->rom, NULL, "cg3.prom", FCODE_MAX_ROM_SIZE, memory_region_init_ram(&s->rom, NULL, "cg3.prom", FCODE_MAX_ROM_SIZE,
&error_abort); &error_fatal);
memory_region_set_readonly(&s->rom, true); memory_region_set_readonly(&s->rom, true);
sysbus_init_mmio(sbd, &s->rom); sysbus_init_mmio(sbd, &s->rom);
@ -310,7 +310,7 @@ static void cg3_realizefn(DeviceState *dev, Error **errp)
} }
memory_region_init_ram(&s->vram_mem, NULL, "cg3.vram", s->vram_size, memory_region_init_ram(&s->vram_mem, NULL, "cg3.vram", s->vram_size,
&error_abort); &error_fatal);
memory_region_set_log(&s->vram_mem, true, DIRTY_MEMORY_VGA); memory_region_set_log(&s->vram_mem, true, DIRTY_MEMORY_VGA);
vmstate_register_ram_global(&s->vram_mem); vmstate_register_ram_global(&s->vram_mem);
sysbus_init_mmio(sbd, &s->vram_mem); sysbus_init_mmio(sbd, &s->vram_mem);

View File

@ -1970,14 +1970,14 @@ static void qxl_realize_common(PCIQXLDevice *qxl, Error **errp)
qxl->rom_size = qxl_rom_size(); qxl->rom_size = qxl_rom_size();
memory_region_init_ram(&qxl->rom_bar, OBJECT(qxl), "qxl.vrom", memory_region_init_ram(&qxl->rom_bar, OBJECT(qxl), "qxl.vrom",
qxl->rom_size, &error_abort); qxl->rom_size, &error_fatal);
vmstate_register_ram(&qxl->rom_bar, &qxl->pci.qdev); vmstate_register_ram(&qxl->rom_bar, &qxl->pci.qdev);
init_qxl_rom(qxl); init_qxl_rom(qxl);
init_qxl_ram(qxl); init_qxl_ram(qxl);
qxl->guest_surfaces.cmds = g_new0(QXLPHYSICAL, qxl->ssd.num_surfaces); qxl->guest_surfaces.cmds = g_new0(QXLPHYSICAL, qxl->ssd.num_surfaces);
memory_region_init_ram(&qxl->vram_bar, OBJECT(qxl), "qxl.vram", memory_region_init_ram(&qxl->vram_bar, OBJECT(qxl), "qxl.vram",
qxl->vram_size, &error_abort); qxl->vram_size, &error_fatal);
vmstate_register_ram(&qxl->vram_bar, &qxl->pci.qdev); vmstate_register_ram(&qxl->vram_bar, &qxl->pci.qdev);
memory_region_init_alias(&qxl->vram32_bar, OBJECT(qxl), "qxl.vram32", memory_region_init_alias(&qxl->vram32_bar, OBJECT(qxl), "qxl.vram32",
&qxl->vram_bar, 0, qxl->vram32_size); &qxl->vram_bar, 0, qxl->vram32_size);
@ -2079,7 +2079,7 @@ static void qxl_realize_secondary(PCIDevice *dev, Error **errp)
qxl->id = device_id++; qxl->id = device_id++;
qxl_init_ramsize(qxl); qxl_init_ramsize(qxl);
memory_region_init_ram(&qxl->vga.vram, OBJECT(dev), "qxl.vgavram", memory_region_init_ram(&qxl->vga.vram, OBJECT(dev), "qxl.vgavram",
qxl->vga.vram_size, &error_abort); qxl->vga.vram_size, &error_fatal);
vmstate_register_ram(&qxl->vga.vram, &qxl->pci.qdev); vmstate_register_ram(&qxl->vga.vram, &qxl->pci.qdev);
qxl->vga.vram_ptr = memory_region_get_ram_ptr(&qxl->vga.vram); qxl->vga.vram_ptr = memory_region_get_ram_ptr(&qxl->vga.vram);
qxl->vga.con = graphic_console_init(DEVICE(dev), 0, &qxl_ops, qxl); qxl->vga.con = graphic_console_init(DEVICE(dev), 0, &qxl_ops, qxl);

View File

@ -1411,7 +1411,7 @@ void sm501_init(MemoryRegion *address_space_mem, uint32_t base,
/* allocate local memory */ /* allocate local memory */
memory_region_init_ram(&s->local_mem_region, NULL, "sm501.local", memory_region_init_ram(&s->local_mem_region, NULL, "sm501.local",
local_mem_bytes, &error_abort); local_mem_bytes, &error_fatal);
vmstate_register_ram_global(&s->local_mem_region); vmstate_register_ram_global(&s->local_mem_region);
memory_region_set_log(&s->local_mem_region, true, DIRTY_MEMORY_VGA); memory_region_set_log(&s->local_mem_region, true, DIRTY_MEMORY_VGA);
s->local_mem = memory_region_get_ram_ptr(&s->local_mem_region); s->local_mem = memory_region_get_ram_ptr(&s->local_mem_region);

View File

@ -584,7 +584,7 @@ TC6393xbState *tc6393xb_init(MemoryRegion *sysmem, uint32_t base, qemu_irq irq)
memory_region_add_subregion(sysmem, base, &s->iomem); memory_region_add_subregion(sysmem, base, &s->iomem);
memory_region_init_ram(&s->vram, NULL, "tc6393xb.vram", 0x100000, memory_region_init_ram(&s->vram, NULL, "tc6393xb.vram", 0x100000,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->vram); vmstate_register_ram_global(&s->vram);
s->vram_ptr = memory_region_get_ram_ptr(&s->vram); s->vram_ptr = memory_region_get_ram_ptr(&s->vram);
memory_region_add_subregion(sysmem, base + 0x100000, &s->vram); memory_region_add_subregion(sysmem, base + 0x100000, &s->vram);

View File

@ -945,7 +945,7 @@ static void tcx_initfn(Object *obj)
TCXState *s = TCX(obj); TCXState *s = TCX(obj);
memory_region_init_ram(&s->rom, NULL, "tcx.prom", FCODE_MAX_ROM_SIZE, memory_region_init_ram(&s->rom, NULL, "tcx.prom", FCODE_MAX_ROM_SIZE,
&error_abort); &error_fatal);
memory_region_set_readonly(&s->rom, true); memory_region_set_readonly(&s->rom, true);
sysbus_init_mmio(sbd, &s->rom); sysbus_init_mmio(sbd, &s->rom);
@ -1007,7 +1007,7 @@ static void tcx_realizefn(DeviceState *dev, Error **errp)
char *fcode_filename; char *fcode_filename;
memory_region_init_ram(&s->vram_mem, OBJECT(s), "tcx.vram", memory_region_init_ram(&s->vram_mem, OBJECT(s), "tcx.vram",
s->vram_size * (1 + 4 + 4), &error_abort); s->vram_size * (1 + 4 + 4), &error_fatal);
vmstate_register_ram_global(&s->vram_mem); vmstate_register_ram_global(&s->vram_mem);
memory_region_set_log(&s->vram_mem, true, DIRTY_MEMORY_VGA); memory_region_set_log(&s->vram_mem, true, DIRTY_MEMORY_VGA);
vram_base = memory_region_get_ram_ptr(&s->vram_mem); vram_base = memory_region_get_ram_ptr(&s->vram_mem);

View File

@ -2139,7 +2139,7 @@ void vga_common_init(VGACommonState *s, Object *obj, bool global_vmstate)
s->is_vbe_vmstate = 1; s->is_vbe_vmstate = 1;
memory_region_init_ram(&s->vram, obj, "vga.vram", s->vram_size, memory_region_init_ram(&s->vram, obj, "vga.vram", s->vram_size,
&error_abort); &error_fatal);
vmstate_register_ram(&s->vram, global_vmstate ? NULL : DEVICE(obj)); vmstate_register_ram(&s->vram, global_vmstate ? NULL : DEVICE(obj));
xen_register_framebuffer(&s->vram); xen_register_framebuffer(&s->vram);
s->vram_ptr = memory_region_get_ram_ptr(&s->vram); s->vram_ptr = memory_region_get_ram_ptr(&s->vram);

View File

@ -1244,7 +1244,7 @@ static void vmsvga_init(DeviceState *dev, struct vmsvga_state_s *s,
s->fifo_size = SVGA_FIFO_SIZE; s->fifo_size = SVGA_FIFO_SIZE;
memory_region_init_ram(&s->fifo_ram, NULL, "vmsvga.fifo", s->fifo_size, memory_region_init_ram(&s->fifo_ram, NULL, "vmsvga.fifo", s->fifo_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->fifo_ram); vmstate_register_ram_global(&s->fifo_ram);
s->fifo_ptr = memory_region_get_ram_ptr(&s->fifo_ram); s->fifo_ptr = memory_region_get_ram_ptr(&s->fifo_ram);

View File

@ -1400,7 +1400,7 @@ FWCfgState *pc_memory_init(PCMachineState *pcms,
option_rom_mr = g_malloc(sizeof(*option_rom_mr)); option_rom_mr = g_malloc(sizeof(*option_rom_mr));
memory_region_init_ram(option_rom_mr, NULL, "pc.rom", PC_ROM_SIZE, memory_region_init_ram(option_rom_mr, NULL, "pc.rom", PC_ROM_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(option_rom_mr); vmstate_register_ram_global(option_rom_mr);
memory_region_add_subregion_overlap(rom_memory, memory_region_add_subregion_overlap(rom_memory,
PC_ROM_MIN_VGA, PC_ROM_MIN_VGA,

View File

@ -56,7 +56,7 @@ static void pc_isa_bios_init(MemoryRegion *rom_memory,
isa_bios_size = MIN(flash_size, 128 * 1024); isa_bios_size = MIN(flash_size, 128 * 1024);
isa_bios = g_malloc(sizeof(*isa_bios)); isa_bios = g_malloc(sizeof(*isa_bios));
memory_region_init_ram(isa_bios, NULL, "isa-bios", isa_bios_size, memory_region_init_ram(isa_bios, NULL, "isa-bios", isa_bios_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(isa_bios); vmstate_register_ram_global(isa_bios);
memory_region_add_subregion_overlap(rom_memory, memory_region_add_subregion_overlap(rom_memory,
0x100000 - isa_bios_size, 0x100000 - isa_bios_size,
@ -193,7 +193,7 @@ static void old_pc_system_rom_init(MemoryRegion *rom_memory, bool isapc_ram_fw)
goto bios_error; goto bios_error;
} }
bios = g_malloc(sizeof(*bios)); bios = g_malloc(sizeof(*bios));
memory_region_init_ram(bios, NULL, "pc.bios", bios_size, &error_abort); memory_region_init_ram(bios, NULL, "pc.bios", bios_size, &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
if (!isapc_ram_fw) { if (!isapc_ram_fw) {
memory_region_set_readonly(bios, true); memory_region_set_readonly(bios, true);

View File

@ -255,12 +255,12 @@ static int milkymist_softusb_init(SysBusDevice *dev)
/* register pmem and dmem */ /* register pmem and dmem */
memory_region_init_ram(&s->pmem, OBJECT(s), "milkymist-softusb.pmem", memory_region_init_ram(&s->pmem, OBJECT(s), "milkymist-softusb.pmem",
s->pmem_size, &error_abort); s->pmem_size, &error_fatal);
vmstate_register_ram_global(&s->pmem); vmstate_register_ram_global(&s->pmem);
s->pmem_ptr = memory_region_get_ram_ptr(&s->pmem); s->pmem_ptr = memory_region_get_ram_ptr(&s->pmem);
sysbus_init_mmio(dev, &s->pmem); sysbus_init_mmio(dev, &s->pmem);
memory_region_init_ram(&s->dmem, OBJECT(s), "milkymist-softusb.dmem", memory_region_init_ram(&s->dmem, OBJECT(s), "milkymist-softusb.dmem",
s->dmem_size, &error_abort); s->dmem_size, &error_fatal);
vmstate_register_ram_global(&s->dmem); vmstate_register_ram_global(&s->dmem);
s->dmem_ptr = memory_region_get_ram_ptr(&s->dmem); s->dmem_ptr = memory_region_get_ram_ptr(&s->dmem);
sysbus_init_mmio(dev, &s->dmem); sysbus_init_mmio(dev, &s->dmem);

View File

@ -54,7 +54,7 @@ static void an5206_init(MachineState *machine)
memory_region_add_subregion(address_space_mem, 0, ram); memory_region_add_subregion(address_space_mem, 0, ram);
/* Internal SRAM. */ /* Internal SRAM. */
memory_region_init_ram(sram, NULL, "an5206.sram", 512, &error_abort); memory_region_init_ram(sram, NULL, "an5206.sram", 512, &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(address_space_mem, AN5206_RAMBAR_ADDR, sram); memory_region_add_subregion(address_space_mem, AN5206_RAMBAR_ADDR, sram);

View File

@ -222,7 +222,7 @@ static void mcf5208evb_init(MachineState *machine)
memory_region_add_subregion(address_space_mem, 0x40000000, ram); memory_region_add_subregion(address_space_mem, 0x40000000, ram);
/* Internal SRAM. */ /* Internal SRAM. */
memory_region_init_ram(sram, NULL, "mcf5208.sram", 16384, &error_abort); memory_region_init_ram(sram, NULL, "mcf5208.sram", 16384, &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(address_space_mem, 0x80000000, sram); memory_region_add_subregion(address_space_mem, 0x80000000, sram);

View File

@ -92,12 +92,12 @@ petalogix_ml605_init(MachineState *machine)
/* Attach emulated BRAM through the LMB. */ /* Attach emulated BRAM through the LMB. */
memory_region_init_ram(phys_lmb_bram, NULL, "petalogix_ml605.lmb_bram", memory_region_init_ram(phys_lmb_bram, NULL, "petalogix_ml605.lmb_bram",
LMB_BRAM_SIZE, &error_abort); LMB_BRAM_SIZE, &error_fatal);
vmstate_register_ram_global(phys_lmb_bram); vmstate_register_ram_global(phys_lmb_bram);
memory_region_add_subregion(address_space_mem, 0x00000000, phys_lmb_bram); memory_region_add_subregion(address_space_mem, 0x00000000, phys_lmb_bram);
memory_region_init_ram(phys_ram, NULL, "petalogix_ml605.ram", ram_size, memory_region_init_ram(phys_ram, NULL, "petalogix_ml605.ram", ram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(phys_ram); vmstate_register_ram_global(phys_ram);
memory_region_add_subregion(address_space_mem, MEMORY_BASEADDR, phys_ram); memory_region_add_subregion(address_space_mem, MEMORY_BASEADDR, phys_ram);

View File

@ -71,12 +71,12 @@ petalogix_s3adsp1800_init(MachineState *machine)
/* Attach emulated BRAM through the LMB. */ /* Attach emulated BRAM through the LMB. */
memory_region_init_ram(phys_lmb_bram, NULL, memory_region_init_ram(phys_lmb_bram, NULL,
"petalogix_s3adsp1800.lmb_bram", LMB_BRAM_SIZE, "petalogix_s3adsp1800.lmb_bram", LMB_BRAM_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(phys_lmb_bram); vmstate_register_ram_global(phys_lmb_bram);
memory_region_add_subregion(sysmem, 0x00000000, phys_lmb_bram); memory_region_add_subregion(sysmem, 0x00000000, phys_lmb_bram);
memory_region_init_ram(phys_ram, NULL, "petalogix_s3adsp1800.ram", memory_region_init_ram(phys_ram, NULL, "petalogix_s3adsp1800.ram",
ram_size, &error_abort); ram_size, &error_fatal);
vmstate_register_ram_global(phys_ram); vmstate_register_ram_global(phys_ram);
memory_region_add_subregion(sysmem, ddr_base, phys_ram); memory_region_add_subregion(sysmem, ddr_base, phys_ram);

View File

@ -294,7 +294,7 @@ static void mips_fulong2e_init(MachineState *machine)
/* allocate RAM */ /* allocate RAM */
memory_region_allocate_system_memory(ram, NULL, "fulong2e.ram", ram_size); memory_region_allocate_system_memory(ram, NULL, "fulong2e.ram", ram_size);
memory_region_init_ram(bios, NULL, "fulong2e.bios", bios_size, memory_region_init_ram(bios, NULL, "fulong2e.bios", bios_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
memory_region_set_readonly(bios, true); memory_region_set_readonly(bios, true);

View File

@ -174,7 +174,7 @@ static void mips_jazz_init(MachineState *machine,
memory_region_add_subregion(address_space, 0, ram); memory_region_add_subregion(address_space, 0, ram);
memory_region_init_ram(bios, NULL, "mips_jazz.bios", MAGNUM_BIOS_SIZE, memory_region_init_ram(bios, NULL, "mips_jazz.bios", MAGNUM_BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
memory_region_set_readonly(bios, true); memory_region_set_readonly(bios, true);
memory_region_init_alias(bios2, NULL, "mips_jazz.bios", bios, memory_region_init_alias(bios2, NULL, "mips_jazz.bios", bios,
@ -241,7 +241,7 @@ static void mips_jazz_init(MachineState *machine,
/* Simple ROM, so user doesn't have to provide one */ /* Simple ROM, so user doesn't have to provide one */
MemoryRegion *rom_mr = g_new(MemoryRegion, 1); MemoryRegion *rom_mr = g_new(MemoryRegion, 1);
memory_region_init_ram(rom_mr, NULL, "g364fb.rom", 0x80000, memory_region_init_ram(rom_mr, NULL, "g364fb.rom", 0x80000,
&error_abort); &error_fatal);
vmstate_register_ram_global(rom_mr); vmstate_register_ram_global(rom_mr);
memory_region_set_readonly(rom_mr, true); memory_region_set_readonly(rom_mr, true);
uint8_t *rom = memory_region_get_ram_ptr(rom_mr); uint8_t *rom = memory_region_get_ram_ptr(rom_mr);

View File

@ -1120,7 +1120,7 @@ void mips_malta_init(MachineState *machine)
* regions are not executable. * regions are not executable.
*/ */
memory_region_init_ram(bios_copy, NULL, "bios.1fc", BIOS_SIZE, memory_region_init_ram(bios_copy, NULL, "bios.1fc", BIOS_SIZE,
&error_abort); &error_fatal);
if (!rom_copy(memory_region_get_ram_ptr(bios_copy), if (!rom_copy(memory_region_get_ram_ptr(bios_copy),
FLASH_ADDRESS, BIOS_SIZE)) { FLASH_ADDRESS, BIOS_SIZE)) {
memcpy(memory_region_get_ram_ptr(bios_copy), memcpy(memory_region_get_ram_ptr(bios_copy),

View File

@ -174,7 +174,7 @@ mips_mipssim_init(MachineState *machine)
memory_region_allocate_system_memory(ram, NULL, "mips_mipssim.ram", memory_region_allocate_system_memory(ram, NULL, "mips_mipssim.ram",
ram_size); ram_size);
memory_region_init_ram(bios, NULL, "mips_mipssim.bios", BIOS_SIZE, memory_region_init_ram(bios, NULL, "mips_mipssim.bios", BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
memory_region_set_readonly(bios, true); memory_region_set_readonly(bios, true);

View File

@ -233,7 +233,7 @@ void mips_r4k_init(MachineState *machine)
if ((bios_size > 0) && (bios_size <= BIOS_SIZE)) { if ((bios_size > 0) && (bios_size <= BIOS_SIZE)) {
bios = g_new(MemoryRegion, 1); bios = g_new(MemoryRegion, 1);
memory_region_init_ram(bios, NULL, "mips_r4k.bios", BIOS_SIZE, memory_region_init_ram(bios, NULL, "mips_r4k.bios", BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
memory_region_set_readonly(bios, true); memory_region_set_readonly(bios, true);
memory_region_add_subregion(get_system_memory(), 0x1fc00000, bios); memory_region_add_subregion(get_system_memory(), 0x1fc00000, bios);

View File

@ -123,11 +123,11 @@ static void moxiesim_init(MachineState *machine)
qemu_register_reset(main_cpu_reset, cpu); qemu_register_reset(main_cpu_reset, cpu);
/* Allocate RAM. */ /* Allocate RAM. */
memory_region_init_ram(ram, NULL, "moxiesim.ram", ram_size, &error_abort); memory_region_init_ram(ram, NULL, "moxiesim.ram", ram_size, &error_fatal);
vmstate_register_ram_global(ram); vmstate_register_ram_global(ram);
memory_region_add_subregion(address_space_mem, ram_base, ram); memory_region_add_subregion(address_space_mem, ram_base, ram);
memory_region_init_ram(rom, NULL, "moxie.rom", 128*0x1000, &error_abort); memory_region_init_ram(rom, NULL, "moxie.rom", 128*0x1000, &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_add_subregion(get_system_memory(), 0x1000, rom); memory_region_add_subregion(get_system_memory(), 0x1000, rom);

View File

@ -463,7 +463,7 @@ static int milkymist_minimac2_init(SysBusDevice *sbd)
/* register buffers memory */ /* register buffers memory */
memory_region_init_ram(&s->buffers, OBJECT(dev), "milkymist-minimac2.buffers", memory_region_init_ram(&s->buffers, OBJECT(dev), "milkymist-minimac2.buffers",
buffers_size, &error_abort); buffers_size, &error_fatal);
vmstate_register_ram_global(&s->buffers); vmstate_register_ram_global(&s->buffers);
s->rx0_buf = memory_region_get_ram_ptr(&s->buffers); s->rx0_buf = memory_region_get_ram_ptr(&s->buffers);
s->rx1_buf = s->rx0_buf + MINIMAC2_BUFFER_SIZE; s->rx1_buf = s->rx0_buf + MINIMAC2_BUFFER_SIZE;

View File

@ -114,7 +114,7 @@ static void openrisc_sim_init(MachineState *machine)
} }
ram = g_malloc(sizeof(*ram)); ram = g_malloc(sizeof(*ram));
memory_region_init_ram(ram, NULL, "openrisc.ram", ram_size, &error_abort); memory_region_init_ram(ram, NULL, "openrisc.ram", ram_size, &error_fatal);
vmstate_register_ram_global(ram); vmstate_register_ram_global(ram);
memory_region_add_subregion(get_system_memory(), 0, ram); memory_region_add_subregion(get_system_memory(), 0, ram);

View File

@ -302,7 +302,7 @@ static void raven_realize(PCIDevice *d, Error **errp)
d->config[0x34] = 0x00; // capabilities_pointer d->config[0x34] = 0x00; // capabilities_pointer
memory_region_init_ram(&s->bios, OBJECT(s), "bios", BIOS_SIZE, memory_region_init_ram(&s->bios, OBJECT(s), "bios", BIOS_SIZE,
&error_abort); &error_fatal);
memory_region_set_readonly(&s->bios, true); memory_region_set_readonly(&s->bios, true);
memory_region_add_subregion(get_system_memory(), (uint32_t)(-BIOS_SIZE), memory_region_add_subregion(get_system_memory(), (uint32_t)(-BIOS_SIZE),
&s->bios); &s->bios);

View File

@ -2081,7 +2081,7 @@ static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom,
snprintf(name, sizeof(name), "%s.rom", object_get_typename(OBJECT(pdev))); snprintf(name, sizeof(name), "%s.rom", object_get_typename(OBJECT(pdev)));
} }
pdev->has_rom = true; pdev->has_rom = true;
memory_region_init_ram(&pdev->rom, OBJECT(pdev), name, size, &error_abort); memory_region_init_ram(&pdev->rom, OBJECT(pdev), name, size, &error_fatal);
vmstate_register_ram(&pdev->rom, &pdev->qdev); vmstate_register_ram(&pdev->rom, &pdev->qdev);
ptr = memory_region_get_ram_ptr(&pdev->rom); ptr = memory_region_get_ram_ptr(&pdev->rom);
load_image(path, ptr); load_image(path, ptr);

View File

@ -207,7 +207,7 @@ static void ppc_core99_init(MachineState *machine)
/* allocate and load BIOS */ /* allocate and load BIOS */
memory_region_init_ram(bios, NULL, "ppc_core99.bios", BIOS_SIZE, memory_region_init_ram(bios, NULL, "ppc_core99.bios", BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
if (bios_name == NULL) if (bios_name == NULL)

View File

@ -135,7 +135,7 @@ static void ppc_heathrow_init(MachineState *machine)
/* allocate and load BIOS */ /* allocate and load BIOS */
memory_region_init_ram(bios, NULL, "ppc_heathrow.bios", BIOS_SIZE, memory_region_init_ram(bios, NULL, "ppc_heathrow.bios", BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
if (bios_name == NULL) if (bios_name == NULL)

View File

@ -215,7 +215,8 @@ static void ref405ep_init(MachineState *machine)
33333333, &pic, kernel_filename == NULL ? 0 : 1); 33333333, &pic, kernel_filename == NULL ? 0 : 1);
/* allocate SRAM */ /* allocate SRAM */
sram_size = 512 * 1024; sram_size = 512 * 1024;
memory_region_init_ram(sram, NULL, "ef405ep.sram", sram_size, &error_abort); memory_region_init_ram(sram, NULL, "ef405ep.sram", sram_size,
&error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(sysmem, 0xFFF00000, sram); memory_region_add_subregion(sysmem, 0xFFF00000, sram);
/* allocate and load BIOS */ /* allocate and load BIOS */
@ -250,7 +251,7 @@ static void ref405ep_init(MachineState *machine)
#endif #endif
bios = g_new(MemoryRegion, 1); bios = g_new(MemoryRegion, 1);
memory_region_init_ram(bios, NULL, "ef405ep.bios", BIOS_SIZE, memory_region_init_ram(bios, NULL, "ef405ep.bios", BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
if (bios_name == NULL) if (bios_name == NULL)
@ -579,7 +580,7 @@ static void taihu_405ep_init(MachineState *machine)
bios_name = BIOS_FILENAME; bios_name = BIOS_FILENAME;
bios = g_new(MemoryRegion, 1); bios = g_new(MemoryRegion, 1);
memory_region_init_ram(bios, NULL, "taihu_405ep.bios", BIOS_SIZE, memory_region_init_ram(bios, NULL, "taihu_405ep.bios", BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
if (filename) { if (filename) {

View File

@ -975,7 +975,7 @@ static void ppc405_ocm_init(CPUPPCState *env)
ocm = g_malloc0(sizeof(ppc405_ocm_t)); ocm = g_malloc0(sizeof(ppc405_ocm_t));
/* XXX: Size is 4096 or 0x04000000 */ /* XXX: Size is 4096 or 0x04000000 */
memory_region_init_ram(&ocm->isarc_ram, NULL, "ppc405.ocm", 4096, memory_region_init_ram(&ocm->isarc_ram, NULL, "ppc405.ocm", 4096,
&error_abort); &error_fatal);
vmstate_register_ram_global(&ocm->isarc_ram); vmstate_register_ram_global(&ocm->isarc_ram);
memory_region_init_alias(&ocm->dsarc_ram, NULL, "ppc405.dsarc", &ocm->isarc_ram, memory_region_init_alias(&ocm->dsarc_ram, NULL, "ppc405.dsarc", &ocm->isarc_ram,
0, 4096); 0, 4096);

View File

@ -106,7 +106,7 @@ void s390_memory_init(ram_addr_t mem_size)
MemoryRegion *ram = g_new(MemoryRegion, 1); MemoryRegion *ram = g_new(MemoryRegion, 1);
/* allocate RAM for core */ /* allocate RAM for core */
memory_region_init_ram(ram, NULL, "s390.ram", mem_size, &error_abort); memory_region_init_ram(ram, NULL, "s390.ram", mem_size, &error_fatal);
vmstate_register_ram_global(ram); vmstate_register_ram_global(ram);
memory_region_add_subregion(sysmem, 0, ram); memory_region_add_subregion(sysmem, 0, ram);

View File

@ -231,7 +231,8 @@ static void assign_storage(SCLPDevice *sclp, SCCB *sccb)
this_subregion_size = mhd->standby_subregion_size; this_subregion_size = mhd->standby_subregion_size;
} }
memory_region_init_ram(standby_ram, NULL, id, this_subregion_size, &error_abort); memory_region_init_ram(standby_ram, NULL, id, this_subregion_size,
&error_fatal);
/* This is a hack to make memory hotunplug work again. Once we have /* This is a hack to make memory hotunplug work again. Once we have
* subdevices, we have to unparent them when unassigning memory, * subdevices, we have to unparent them when unassigning memory,
* instead of doing it via the ref count of the MemoryRegion. */ * instead of doing it via the ref count of the MemoryRegion. */

View File

@ -255,7 +255,7 @@ static void r2d_init(MachineState *machine)
qemu_register_reset(main_cpu_reset, reset_info); qemu_register_reset(main_cpu_reset, reset_info);
/* Allocate memory space */ /* Allocate memory space */
memory_region_init_ram(sdram, NULL, "r2d.sdram", SDRAM_SIZE, &error_abort); memory_region_init_ram(sdram, NULL, "r2d.sdram", SDRAM_SIZE, &error_fatal);
vmstate_register_ram_global(sdram); vmstate_register_ram_global(sdram);
memory_region_add_subregion(address_space_mem, SDRAM_BASE, sdram); memory_region_add_subregion(address_space_mem, SDRAM_BASE, sdram);
/* Register peripherals */ /* Register peripherals */

View File

@ -59,16 +59,16 @@ static void shix_init(MachineState *machine)
} }
/* Allocate memory space */ /* Allocate memory space */
memory_region_init_ram(rom, NULL, "shix.rom", 0x4000, &error_abort); memory_region_init_ram(rom, NULL, "shix.rom", 0x4000, &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_set_readonly(rom, true); memory_region_set_readonly(rom, true);
memory_region_add_subregion(sysmem, 0x00000000, rom); memory_region_add_subregion(sysmem, 0x00000000, rom);
memory_region_init_ram(&sdram[0], NULL, "shix.sdram1", 0x01000000, memory_region_init_ram(&sdram[0], NULL, "shix.sdram1", 0x01000000,
&error_abort); &error_fatal);
vmstate_register_ram_global(&sdram[0]); vmstate_register_ram_global(&sdram[0]);
memory_region_add_subregion(sysmem, 0x08000000, &sdram[0]); memory_region_add_subregion(sysmem, 0x08000000, &sdram[0]);
memory_region_init_ram(&sdram[1], NULL, "shix.sdram2", 0x01000000, memory_region_init_ram(&sdram[1], NULL, "shix.sdram2", 0x01000000,
&error_abort); &error_fatal);
vmstate_register_ram_global(&sdram[1]); vmstate_register_ram_global(&sdram[1]);
memory_region_add_subregion(sysmem, 0x0c000000, &sdram[1]); memory_region_add_subregion(sysmem, 0x0c000000, &sdram[1]);

View File

@ -156,7 +156,7 @@ static void leon3_generic_hw_init(MachineState *machine)
/* Allocate BIOS */ /* Allocate BIOS */
prom_size = 8 * 1024 * 1024; /* 8Mb */ prom_size = 8 * 1024 * 1024; /* 8Mb */
memory_region_init_ram(prom, NULL, "Leon3.bios", prom_size, &error_abort); memory_region_init_ram(prom, NULL, "Leon3.bios", prom_size, &error_fatal);
vmstate_register_ram_global(prom); vmstate_register_ram_global(prom);
memory_region_set_readonly(prom, true); memory_region_set_readonly(prom, true);
memory_region_add_subregion(address_space_mem, 0x00000000, prom); memory_region_add_subregion(address_space_mem, 0x00000000, prom);

View File

@ -641,7 +641,7 @@ static int idreg_init1(SysBusDevice *dev)
IDRegState *s = MACIO_ID_REGISTER(dev); IDRegState *s = MACIO_ID_REGISTER(dev);
memory_region_init_ram(&s->mem, OBJECT(s), memory_region_init_ram(&s->mem, OBJECT(s),
"sun4m.idreg", sizeof(idreg_data), &error_abort); "sun4m.idreg", sizeof(idreg_data), &error_fatal);
vmstate_register_ram_global(&s->mem); vmstate_register_ram_global(&s->mem);
memory_region_set_readonly(&s->mem, true); memory_region_set_readonly(&s->mem, true);
sysbus_init_mmio(dev, &s->mem); sysbus_init_mmio(dev, &s->mem);
@ -688,7 +688,7 @@ static int afx_init1(SysBusDevice *dev)
{ {
AFXState *s = TCX_AFX(dev); AFXState *s = TCX_AFX(dev);
memory_region_init_ram(&s->mem, OBJECT(s), "sun4m.afx", 4, &error_abort); memory_region_init_ram(&s->mem, OBJECT(s), "sun4m.afx", 4, &error_fatal);
vmstate_register_ram_global(&s->mem); vmstate_register_ram_global(&s->mem);
sysbus_init_mmio(dev, &s->mem); sysbus_init_mmio(dev, &s->mem);
return 0; return 0;
@ -763,7 +763,7 @@ static int prom_init1(SysBusDevice *dev)
PROMState *s = OPENPROM(dev); PROMState *s = OPENPROM(dev);
memory_region_init_ram(&s->prom, OBJECT(s), "sun4m.prom", PROM_SIZE_MAX, memory_region_init_ram(&s->prom, OBJECT(s), "sun4m.prom", PROM_SIZE_MAX,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->prom); vmstate_register_ram_global(&s->prom);
memory_region_set_readonly(&s->prom, true); memory_region_set_readonly(&s->prom, true);
sysbus_init_mmio(dev, &s->prom); sysbus_init_mmio(dev, &s->prom);

View File

@ -690,7 +690,7 @@ static int prom_init1(SysBusDevice *dev)
PROMState *s = OPENPROM(dev); PROMState *s = OPENPROM(dev);
memory_region_init_ram(&s->prom, OBJECT(s), "sun4u.prom", PROM_SIZE_MAX, memory_region_init_ram(&s->prom, OBJECT(s), "sun4u.prom", PROM_SIZE_MAX,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->prom); vmstate_register_ram_global(&s->prom);
memory_region_set_readonly(&s->prom, true); memory_region_set_readonly(&s->prom, true);
sysbus_init_mmio(dev, &s->prom); sysbus_init_mmio(dev, &s->prom);
@ -734,7 +734,7 @@ static int ram_init1(SysBusDevice *dev)
RamDevice *d = SUN4U_RAM(dev); RamDevice *d = SUN4U_RAM(dev);
memory_region_init_ram(&d->ram, OBJECT(d), "sun4u.ram", d->size, memory_region_init_ram(&d->ram, OBJECT(d), "sun4u.ram", d->size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&d->ram); vmstate_register_ram_global(&d->ram);
sysbus_init_mmio(dev, &d->ram); sysbus_init_mmio(dev, &d->ram);
return 0; return 0;

View File

@ -76,17 +76,23 @@ static void tricore_testboard_init(MachineState *machine, int board_id)
exit(1); exit(1);
} }
env = &cpu->env; env = &cpu->env;
memory_region_init_ram(ext_cram, NULL, "powerlink_ext_c.ram", 2*1024*1024, &error_abort); memory_region_init_ram(ext_cram, NULL, "powerlink_ext_c.ram", 2*1024*1024,
&error_fatal);
vmstate_register_ram_global(ext_cram); vmstate_register_ram_global(ext_cram);
memory_region_init_ram(ext_dram, NULL, "powerlink_ext_d.ram", 4*1024*1024, &error_abort); memory_region_init_ram(ext_dram, NULL, "powerlink_ext_d.ram", 4*1024*1024,
&error_fatal);
vmstate_register_ram_global(ext_dram); vmstate_register_ram_global(ext_dram);
memory_region_init_ram(int_cram, NULL, "powerlink_int_c.ram", 48*1024, &error_abort); memory_region_init_ram(int_cram, NULL, "powerlink_int_c.ram", 48*1024,
&error_fatal);
vmstate_register_ram_global(int_cram); vmstate_register_ram_global(int_cram);
memory_region_init_ram(int_dram, NULL, "powerlink_int_d.ram", 48*1024, &error_abort); memory_region_init_ram(int_dram, NULL, "powerlink_int_d.ram", 48*1024,
&error_fatal);
vmstate_register_ram_global(int_dram); vmstate_register_ram_global(int_dram);
memory_region_init_ram(pcp_data, NULL, "powerlink_pcp_data.ram", 16*1024, &error_abort); memory_region_init_ram(pcp_data, NULL, "powerlink_pcp_data.ram", 16*1024,
&error_fatal);
vmstate_register_ram_global(pcp_data); vmstate_register_ram_global(pcp_data);
memory_region_init_ram(pcp_text, NULL, "powerlink_pcp_text.ram", 32*1024, &error_abort); memory_region_init_ram(pcp_text, NULL, "powerlink_pcp_text.ram", 32*1024,
&error_fatal);
vmstate_register_ram_global(pcp_text); vmstate_register_ram_global(pcp_text);
memory_region_add_subregion(sysmem, 0x80000000, ext_cram); memory_region_add_subregion(sysmem, 0x80000000, ext_cram);

View File

@ -75,7 +75,7 @@ static void puv3_board_init(CPUUniCore32State *env, ram_addr_t ram_size)
/* SDRAM at address zero. */ /* SDRAM at address zero. */
memory_region_init_ram(ram_memory, NULL, "puv3.ram", ram_size, memory_region_init_ram(ram_memory, NULL, "puv3.ram", ram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(ram_memory); vmstate_register_ram_global(ram_memory);
memory_region_add_subregion(get_system_memory(), 0, ram_memory); memory_region_add_subregion(get_system_memory(), 0, ram_memory);
} }

View File

@ -79,12 +79,12 @@ static void xtensa_sim_init(MachineState *machine)
} }
ram = g_malloc(sizeof(*ram)); ram = g_malloc(sizeof(*ram));
memory_region_init_ram(ram, NULL, "xtensa.sram", ram_size, &error_abort); memory_region_init_ram(ram, NULL, "xtensa.sram", ram_size, &error_fatal);
vmstate_register_ram_global(ram); vmstate_register_ram_global(ram);
memory_region_add_subregion(get_system_memory(), 0, ram); memory_region_add_subregion(get_system_memory(), 0, ram);
rom = g_malloc(sizeof(*rom)); rom = g_malloc(sizeof(*rom));
memory_region_init_ram(rom, NULL, "xtensa.rom", 0x1000, &error_abort); memory_region_init_ram(rom, NULL, "xtensa.rom", 0x1000, &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_add_subregion(get_system_memory(), 0xfe000000, rom); memory_region_add_subregion(get_system_memory(), 0xfe000000, rom);

View File

@ -143,7 +143,8 @@ static void lx60_net_init(MemoryRegion *address_space,
sysbus_mmio_get_region(s, 1)); sysbus_mmio_get_region(s, 1));
ram = g_malloc(sizeof(*ram)); ram = g_malloc(sizeof(*ram));
memory_region_init_ram(ram, OBJECT(s), "open_eth.ram", 16384, &error_abort); memory_region_init_ram(ram, OBJECT(s), "open_eth.ram", 16384,
&error_fatal);
vmstate_register_ram_global(ram); vmstate_register_ram_global(ram);
memory_region_add_subregion(address_space, buffers, ram); memory_region_add_subregion(address_space, buffers, ram);
} }
@ -223,7 +224,7 @@ static void lx_init(const LxBoardDesc *board, MachineState *machine)
ram = g_malloc(sizeof(*ram)); ram = g_malloc(sizeof(*ram));
memory_region_init_ram(ram, NULL, "lx60.dram", machine->ram_size, memory_region_init_ram(ram, NULL, "lx60.dram", machine->ram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(ram); vmstate_register_ram_global(ram);
memory_region_add_subregion(system_memory, 0, ram); memory_region_add_subregion(system_memory, 0, ram);
@ -275,7 +276,7 @@ static void lx_init(const LxBoardDesc *board, MachineState *machine)
rom = g_malloc(sizeof(*rom)); rom = g_malloc(sizeof(*rom));
memory_region_init_ram(rom, NULL, "lx60.sram", board->sram_size, memory_region_init_ram(rom, NULL, "lx60.sram", board->sram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_add_subregion(system_memory, 0xfe000000, rom); memory_region_add_subregion(system_memory, 0xfe000000, rom);

View File

@ -50,6 +50,9 @@
* Call a function aborting on errors: * Call a function aborting on errors:
* foo(arg, &error_abort); * foo(arg, &error_abort);
* *
* Call a function treating errors as fatal:
* foo(arg, &error_fatal);
*
* Receive an error and pass it on to the caller: * Receive an error and pass it on to the caller:
* Error *err = NULL; * Error *err = NULL;
* foo(arg, &err); * foo(arg, &err);
@ -100,6 +103,7 @@ ErrorClass error_get_class(const Error *err);
* If @errp is NULL, the error is ignored. Don't bother creating one * If @errp is NULL, the error is ignored. Don't bother creating one
* then. * then.
* If @errp is &error_abort, print a suitable message and abort(). * If @errp is &error_abort, print a suitable message and abort().
* If @errp is &error_fatal, print a suitable message and exit(1).
* If @errp is anything else, *@errp must be NULL. * If @errp is anything else, *@errp must be NULL.
* The new error's class is ERROR_CLASS_GENERIC_ERROR, and its * The new error's class is ERROR_CLASS_GENERIC_ERROR, and its
* human-readable error message is made from printf-style @fmt, ... * human-readable error message is made from printf-style @fmt, ...
@ -148,6 +152,8 @@ void error_setg_win32_internal(Error **errp,
* error object. * error object.
* Else, if @dst_errp is &error_abort, print a suitable message and * Else, if @dst_errp is &error_abort, print a suitable message and
* abort(). * abort().
* Else, if @dst_errp is &error_fatal, print a suitable message and
* exit(1).
* Else, if @dst_errp already contains an error, ignore this one: free * Else, if @dst_errp already contains an error, ignore this one: free
* the error object. * the error object.
* Else, move the error object from @local_err to *@dst_errp. * Else, move the error object from @local_err to *@dst_errp.
@ -155,6 +161,13 @@ void error_setg_win32_internal(Error **errp,
*/ */
void error_propagate(Error **dst_errp, Error *local_err); void error_propagate(Error **dst_errp, Error *local_err);
/**
* Append a printf-style human-readable explanation to an existing error.
* May be called multiple times, and safe if @errp is NULL.
*/
void error_append_hint(Error **errp, const char *fmt, ...)
GCC_FMT_ATTR(2, 3);
/* /*
* Convenience function to report open() failure. * Convenience function to report open() failure.
*/ */
@ -199,4 +212,9 @@ void error_set_internal(Error **errp,
*/ */
extern Error *error_abort; extern Error *error_abort;
/*
* Pass to error_setg() & friends to exit(1) on error.
*/
extern Error *error_fatal;
#endif #endif

View File

@ -1251,7 +1251,7 @@ void memory_region_init_ram_ptr(MemoryRegion *mr,
/* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */ /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */
assert(ptr != NULL); assert(ptr != NULL);
mr->ram_addr = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort); mr->ram_addr = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_fatal);
} }
void memory_region_set_skip_dump(MemoryRegion *mr) void memory_region_set_skip_dump(MemoryRegion *mr)

4
numa.c
View File

@ -424,14 +424,14 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
*/ */
if (err) { if (err) {
error_report_err(err); error_report_err(err);
memory_region_init_ram(mr, owner, name, ram_size, &error_abort); memory_region_init_ram(mr, owner, name, ram_size, &error_fatal);
} }
#else #else
fprintf(stderr, "-mem-path not supported on this host\n"); fprintf(stderr, "-mem-path not supported on this host\n");
exit(1); exit(1);
#endif #endif
} else { } else {
memory_region_init_ram(mr, owner, name, ram_size, &error_abort); memory_region_init_ram(mr, owner, name, ram_size, &error_fatal);
} }
vmstate_register_ram_global(mr); vmstate_register_ram_global(mr);
} }

View File

@ -289,37 +289,35 @@ static Object *qdev_get_peripheral_anon(void)
return dev; return dev;
} }
#if 0 /* conversion from qerror_report() to error_set() broke their use */ static void qbus_list_bus(DeviceState *dev, Error **errp)
static void qbus_list_bus(DeviceState *dev)
{ {
BusState *child; BusState *child;
const char *sep = " "; const char *sep = " ";
error_printf("child buses at \"%s\":", error_append_hint(errp, "child buses at \"%s\":",
dev->id ? dev->id : object_get_typename(OBJECT(dev))); dev->id ? dev->id : object_get_typename(OBJECT(dev)));
QLIST_FOREACH(child, &dev->child_bus, sibling) { QLIST_FOREACH(child, &dev->child_bus, sibling) {
error_printf("%s\"%s\"", sep, child->name); error_append_hint(errp, "%s\"%s\"", sep, child->name);
sep = ", "; sep = ", ";
} }
error_printf("\n");
} }
static void qbus_list_dev(BusState *bus) static void qbus_list_dev(BusState *bus, Error **errp)
{ {
BusChild *kid; BusChild *kid;
const char *sep = " "; const char *sep = " ";
error_printf("devices at \"%s\":", bus->name); error_append_hint(errp, "devices at \"%s\":", bus->name);
QTAILQ_FOREACH(kid, &bus->children, sibling) { QTAILQ_FOREACH(kid, &bus->children, sibling) {
DeviceState *dev = kid->child; DeviceState *dev = kid->child;
error_printf("%s\"%s\"", sep, object_get_typename(OBJECT(dev))); error_append_hint(errp, "%s\"%s\"", sep,
if (dev->id) object_get_typename(OBJECT(dev)));
error_printf("/\"%s\"", dev->id); if (dev->id) {
error_append_hint(errp, "/\"%s\"", dev->id);
}
sep = ", "; sep = ", ";
} }
error_printf("\n");
} }
#endif
static BusState *qbus_find_bus(DeviceState *dev, char *elem) static BusState *qbus_find_bus(DeviceState *dev, char *elem)
{ {
@ -461,11 +459,7 @@ static BusState *qbus_find(const char *path, Error **errp)
if (!dev) { if (!dev) {
error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND, error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
"Device '%s' not found", elem); "Device '%s' not found", elem);
#if 0 /* conversion from qerror_report() to error_set() broke this: */ qbus_list_dev(bus, errp);
if (!monitor_cur_is_qmp()) {
qbus_list_dev(bus);
}
#endif
return NULL; return NULL;
} }
@ -483,11 +477,7 @@ static BusState *qbus_find(const char *path, Error **errp)
if (dev->num_child_bus) { if (dev->num_child_bus) {
error_setg(errp, "Device '%s' has multiple child buses", error_setg(errp, "Device '%s' has multiple child buses",
elem); elem);
#if 0 /* conversion from qerror_report() to error_set() broke this: */ qbus_list_bus(dev, errp);
if (!monitor_cur_is_qmp()) {
qbus_list_bus(dev);
}
#endif
} else { } else {
error_setg(errp, "Device '%s' has no child bus", elem); error_setg(errp, "Device '%s' has no child bus", elem);
} }
@ -503,11 +493,7 @@ static BusState *qbus_find(const char *path, Error **errp)
bus = qbus_find_bus(dev, elem); bus = qbus_find_bus(dev, elem);
if (!bus) { if (!bus) {
error_setg(errp, "Bus '%s' not found", elem); error_setg(errp, "Bus '%s' not found", elem);
#if 0 /* conversion from qerror_report() to error_set() broke this: */ qbus_list_bus(dev, errp);
if (!monitor_cur_is_qmp()) {
qbus_list_bus(dev);
}
#endif
return NULL; return NULL;
} }
} }

View File

@ -2,9 +2,11 @@
* QEMU Error Objects * QEMU Error Objects
* *
* Copyright IBM, Corp. 2011 * Copyright IBM, Corp. 2011
* Copyright (C) 2011-2015 Red Hat, Inc.
* *
* Authors: * Authors:
* Anthony Liguori <aliguori@us.ibm.com> * Anthony Liguori <aliguori@us.ibm.com>
* Markus Armbruster <armbru@redhat.com>,
* *
* This work is licensed under the terms of the GNU LGPL, version 2. See * This work is licensed under the terms of the GNU LGPL, version 2. See
* the COPYING.LIB file in the top-level directory. * the COPYING.LIB file in the top-level directory.
@ -20,16 +22,24 @@ struct Error
ErrorClass err_class; ErrorClass err_class;
const char *src, *func; const char *src, *func;
int line; int line;
GString *hint;
}; };
Error *error_abort; Error *error_abort;
Error *error_fatal;
static void error_do_abort(Error *err) static void error_handle_fatal(Error **errp, Error *err)
{ {
fprintf(stderr, "Unexpected error in %s() at %s:%d:\n", if (errp == &error_abort) {
err->func, err->src, err->line); fprintf(stderr, "Unexpected error in %s() at %s:%d:\n",
error_report_err(err); err->func, err->src, err->line);
abort(); error_report_err(err);
abort();
}
if (errp == &error_fatal) {
error_report_err(err);
exit(1);
}
} }
static void error_setv(Error **errp, static void error_setv(Error **errp,
@ -51,10 +61,7 @@ static void error_setv(Error **errp,
err->line = line; err->line = line;
err->func = func; err->func = func;
if (errp == &error_abort) { error_handle_fatal(errp, err);
error_do_abort(err);
}
*errp = err; *errp = err;
errno = saved_errno; errno = saved_errno;
@ -115,6 +122,28 @@ void error_setg_file_open_internal(Error **errp,
"Could not open '%s'", filename); "Could not open '%s'", filename);
} }
void error_append_hint(Error **errp, const char *fmt, ...)
{
va_list ap;
int saved_errno = errno;
Error *err;
if (!errp) {
return;
}
err = *errp;
assert(err && errp != &error_abort);
if (!err->hint) {
err->hint = g_string_new(NULL);
}
va_start(ap, fmt);
g_string_append_vprintf(err->hint, fmt, ap);
va_end(ap);
errno = saved_errno;
}
#ifdef _WIN32 #ifdef _WIN32
void error_setg_win32_internal(Error **errp, void error_setg_win32_internal(Error **errp,
@ -151,6 +180,12 @@ Error *error_copy(const Error *err)
err_new = g_malloc0(sizeof(*err)); err_new = g_malloc0(sizeof(*err));
err_new->msg = g_strdup(err->msg); err_new->msg = g_strdup(err->msg);
err_new->err_class = err->err_class; err_new->err_class = err->err_class;
err_new->src = err->src;
err_new->line = err->line;
err_new->func = err->func;
if (err->hint) {
err_new->hint = g_string_new(err->hint->str);
}
return err_new; return err_new;
} }
@ -168,6 +203,9 @@ const char *error_get_pretty(Error *err)
void error_report_err(Error *err) void error_report_err(Error *err)
{ {
error_report("%s", error_get_pretty(err)); error_report("%s", error_get_pretty(err));
if (err->hint) {
error_printf_unless_qmp("%s\n", err->hint->str);
}
error_free(err); error_free(err);
} }
@ -175,17 +213,22 @@ void error_free(Error *err)
{ {
if (err) { if (err) {
g_free(err->msg); g_free(err->msg);
if (err->hint) {
g_string_free(err->hint, true);
}
g_free(err); g_free(err);
} }
} }
void error_propagate(Error **dst_errp, Error *local_err) void error_propagate(Error **dst_errp, Error *local_err)
{ {
if (local_err && dst_errp == &error_abort) { if (!local_err) {
error_do_abort(local_err); return;
} else if (dst_errp && !*dst_errp) { }
error_handle_fatal(dst_errp, local_err);
if (dst_errp && !*dst_errp) {
*dst_errp = local_err; *dst_errp = local_err;
} else if (local_err) { } else {
error_free(local_err); error_free(local_err);
} }
} }

View File

@ -210,7 +210,7 @@ void error_vreport(const char *fmt, va_list ap)
GTimeVal tv; GTimeVal tv;
gchar *timestr; gchar *timestr;
if (enable_timestamp_msg) { if (enable_timestamp_msg && !cur_mon) {
g_get_current_time(&tv); g_get_current_time(&tv);
timestr = g_time_val_to_iso8601(&tv); timestr = g_time_val_to_iso8601(&tv);
error_printf("%s ", timestr); error_printf("%s ", timestr);

View File

@ -205,10 +205,8 @@ void parse_option_size(const char *name, const char *value,
break; break;
default: default:
error_setg(errp, QERR_INVALID_PARAMETER_VALUE, name, "a size"); error_setg(errp, QERR_INVALID_PARAMETER_VALUE, name, "a size");
#if 0 /* conversion from qerror_report() to error_set() broke this: */ error_append_hint(errp, "You may use k, M, G or T suffixes for "
error_printf_unless_qmp("You may use k, M, G or T suffixes for " "kilobytes, megabytes, gigabytes and terabytes.");
"kilobytes, megabytes, gigabytes and terabytes.\n");
#endif
return; return;
} }
} else { } else {
@ -648,9 +646,8 @@ QemuOpts *qemu_opts_create(QemuOptsList *list, const char *id,
if (!id_wellformed(id)) { if (!id_wellformed(id)) {
error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "id", error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "id",
"an identifier"); "an identifier");
#if 0 /* conversion from qerror_report() to error_set() broke this: */ error_append_hint(errp, "Identifiers consist of letters, digits, "
error_printf_unless_qmp("Identifiers consist of letters, digits, '-', '.', '_', starting with a letter.\n"); "'-', '.', '_', starting with a letter.");
#endif
return NULL; return NULL;
} }
opts = qemu_opts_find(list, id); opts = qemu_opts_find(list, id);

View File

@ -213,7 +213,7 @@ static void xen_ram_init(PCMachineState *pcms,
block_len = (1ULL << 32) + pcms->above_4g_mem_size; block_len = (1ULL << 32) + pcms->above_4g_mem_size;
} }
memory_region_init_ram(&ram_memory, NULL, "xen.ram", block_len, memory_region_init_ram(&ram_memory, NULL, "xen.ram", block_len,
&error_abort); &error_fatal);
*ram_memory_p = &ram_memory; *ram_memory_p = &ram_memory;
vmstate_register_ram_global(&ram_memory); vmstate_register_ram_global(&ram_memory);