Set default console to virtio on S390x

All "normal" system emulation targets in qemu I'm aware of display output
on either VGA or serial output.

Our S390x virtio machine doesn't have such kind of legacy hardware. So
instead we need to default to a virtio console.

I'm not particularly proud of this patch. It would be a lot better to
have something in the machine description that tells us about the default
terminal.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
Alexander Graf 2009-12-05 12:44:30 +01:00 committed by Aurelien Jarno
parent afcb0e4559
commit 93d434b4ae

26
vl.c
View File

@ -4711,6 +4711,20 @@ int main(int argc, char **argv, char **envp)
cyls = heads = secs = 0;
translation = BIOS_ATA_TRANSLATION_AUTO;
#ifdef TARGET_S390X
for(i = 0; i < MAX_SERIAL_PORTS; i++)
serial_devices[i] = NULL;
serial_device_index = 0;
for(i = 0; i < MAX_PARALLEL_PORTS; i++)
parallel_devices[i] = NULL;
parallel_device_index = 0;
virtio_consoles[0] = "mon:stdio";
for(i = 1; i < MAX_VIRTIO_CONSOLES; i++)
virtio_consoles[i] = NULL;
virtio_console_index = 0;
#else
serial_devices[0] = "vc:80Cx24C";
for(i = 1; i < MAX_SERIAL_PORTS; i++)
serial_devices[i] = NULL;
@ -4724,6 +4738,7 @@ int main(int argc, char **argv, char **envp)
for(i = 0; i < MAX_VIRTIO_CONSOLES; i++)
virtio_consoles[i] = NULL;
virtio_console_index = 0;
#endif
monitor_devices[0] = "vc:80Cx24C";
monitor_flags[0] = MONITOR_IS_DEFAULT | MONITOR_USE_READLINE;
@ -5640,6 +5655,17 @@ int main(int argc, char **argv, char **envp)
break;
}
}
for (i = 0; i < MAX_VIRTIO_CONSOLES; i++) {
const char *devname = virtio_consoles[i];
if (devname && !strcmp(devname,"mon:stdio")) {
monitor_devices[0] = NULL;
break;
} else if (devname && !strcmp(devname,"stdio")) {
monitor_devices[0] = NULL;
virtio_consoles[i] = "mon:stdio";
break;
}
}
}
if (nb_numa_nodes > 0) {