default devices: vga adapter.

Qemu creates a vga display for you in case you didn't specify one on the
command line.  Right now this is tied to the '-vga <type>' command line
switch, which in turn causes trouble if you are creating your gfx card
using '-device VGA,<props>'.

This patch adds a variable default_vga which says whenever a default
serial line should be added.  It is enabled by default.  It is cleared
when qemu finds '-vga' or '-device {VGA,Cirrus VGA,QEMUware SVGA}' on
the command line.

'-device VGA' still doesn't work though due to a initialization order
issue (vga must init before calling i440fx_init_memory_mappings).

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Gerd Hoffmann 2009-12-08 13:11:45 +01:00 committed by Anthony Liguori
parent e1c09175bc
commit 64465297cd

9
vl.c
View File

@ -193,7 +193,7 @@ int autostart;
static int rtc_utc = 1; static int rtc_utc = 1;
static int rtc_date_offset = -1; /* -1 means no change */ static int rtc_date_offset = -1; /* -1 means no change */
QEMUClock *rtc_clock; QEMUClock *rtc_clock;
int vga_interface_type = VGA_CIRRUS; int vga_interface_type = VGA_NONE;
#ifdef TARGET_SPARC #ifdef TARGET_SPARC
int graphic_width = 1024; int graphic_width = 1024;
int graphic_height = 768; int graphic_height = 768;
@ -275,6 +275,7 @@ static void *boot_set_opaque;
static int default_serial = 1; static int default_serial = 1;
static int default_parallel = 1; static int default_parallel = 1;
static int default_monitor = 1; static int default_monitor = 1;
static int default_vga = 1;
static struct { static struct {
const char *driver; const char *driver;
@ -282,6 +283,9 @@ static struct {
} default_list[] = { } default_list[] = {
{ .driver = "isa-serial", .flag = &default_serial }, { .driver = "isa-serial", .flag = &default_serial },
{ .driver = "isa-parallel", .flag = &default_parallel }, { .driver = "isa-parallel", .flag = &default_parallel },
{ .driver = "VGA", .flag = &default_vga },
{ .driver = "Cirrus VGA", .flag = &default_vga },
{ .driver = "QEMUware SVGA", .flag = &default_vga },
}; };
static int default_driver_check(QemuOpts *opts, void *opaque) static int default_driver_check(QemuOpts *opts, void *opaque)
@ -4373,6 +4377,7 @@ static void select_vgahw (const char *p)
{ {
const char *opts; const char *opts;
default_vga = 0;
vga_interface_type = VGA_NONE; vga_interface_type = VGA_NONE;
if (strstart(p, "std", &opts)) { if (strstart(p, "std", &opts)) {
vga_interface_type = VGA_STD; vga_interface_type = VGA_STD;
@ -5565,6 +5570,8 @@ int main(int argc, char **argv, char **envp)
if (default_monitor) if (default_monitor)
add_device_config(DEV_MONITOR, "vc:80Cx24C"); add_device_config(DEV_MONITOR, "vc:80Cx24C");
} }
if (default_vga)
vga_interface_type = VGA_CIRRUS;
if (qemu_opts_foreach(&qemu_chardev_opts, chardev_init_func, NULL, 1) != 0) if (qemu_opts_foreach(&qemu_chardev_opts, chardev_init_func, NULL, 1) != 0)
exit(1); exit(1);