mirror of https://github.com/xqemu/xqemu.git
pc: Fix error reporting for -boot once
Commit0ecdffbb
created pc_boot_set() for use from monitor command "boot_set", via qemu_boot_set(). pc_boot_set() reports errors to cur_mon, which works fine for monitor code. Commite0f084bf
reused the function int reset handler restore_boot_devices(). Use of cur_mon is problematic in that context. For instance, the "Too many boot devices for PC" error for "-boot order=abcdefgh,once=c" goes to the monitor instead of stderr. The monitor may not even exist. Fix by switching to qemu_error().
This commit is contained in:
parent
03cd4655cb
commit
8ad00f8425
7
hw/pc.c
7
hw/pc.c
|
@ -234,7 +234,6 @@ static int boot_device2nibble(char boot_device)
|
||||||
and used there as well */
|
and used there as well */
|
||||||
static int pc_boot_set(void *opaque, const char *boot_device)
|
static int pc_boot_set(void *opaque, const char *boot_device)
|
||||||
{
|
{
|
||||||
Monitor *mon = cur_mon;
|
|
||||||
#define PC_MAX_BOOT_DEVICES 3
|
#define PC_MAX_BOOT_DEVICES 3
|
||||||
RTCState *s = (RTCState *)opaque;
|
RTCState *s = (RTCState *)opaque;
|
||||||
int nbds, bds[3] = { 0, };
|
int nbds, bds[3] = { 0, };
|
||||||
|
@ -242,14 +241,14 @@ static int pc_boot_set(void *opaque, const char *boot_device)
|
||||||
|
|
||||||
nbds = strlen(boot_device);
|
nbds = strlen(boot_device);
|
||||||
if (nbds > PC_MAX_BOOT_DEVICES) {
|
if (nbds > PC_MAX_BOOT_DEVICES) {
|
||||||
monitor_printf(mon, "Too many boot devices for PC\n");
|
qemu_error("Too many boot devices for PC\n");
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
for (i = 0; i < nbds; i++) {
|
for (i = 0; i < nbds; i++) {
|
||||||
bds[i] = boot_device2nibble(boot_device[i]);
|
bds[i] = boot_device2nibble(boot_device[i]);
|
||||||
if (bds[i] == 0) {
|
if (bds[i] == 0) {
|
||||||
monitor_printf(mon, "Invalid boot device for PC: '%c'\n",
|
qemu_error("Invalid boot device for PC: '%c'\n",
|
||||||
boot_device[i]);
|
boot_device[i]);
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue