aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2014-10-28 10:09:11 +0100
committerMichael S. Tsirkin <mst@redhat.com>2014-11-03 18:32:48 +0200
commit6f00494abed261cdbfdd003fe45f671eb3a56d78 (patch)
treedda44144dd537ef9f5e3a67b0ad88ce686f1e2be
parentd3f16ec887bb58b19eac94fcae139a39a7933e15 (diff)
downloadvirtio-serial-6f00494abed261cdbfdd003fe45f671eb3a56d78.tar.gz
vga: add default display to machine class
This allows machine classes to specify which display device they want as default. If unspecified the current behavior (try cirrus, failing that try stdvga, failing that use no display) will be used. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--hw/i386/pc.c1
-rw-r--r--include/hw/boards.h2
-rw-r--r--vl.c5
3 files changed, 7 insertions, 1 deletions
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index dc2fe6a6662..1205db83bcb 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1526,6 +1526,7 @@ static void pc_generic_machine_class_init(ObjectClass *oc, void *data)
mc->is_default = qm->is_default;
mc->default_machine_opts = qm->default_machine_opts;
mc->default_boot_order = qm->default_boot_order;
+ mc->default_display = qm->default_display;
mc->compat_props = qm->compat_props;
mc->hw_version = qm->hw_version;
}
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 4429a1e3a22..99a172d6526 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -40,6 +40,7 @@ struct QEMUMachine {
int is_default;
const char *default_machine_opts;
const char *default_boot_order;
+ const char *default_display;
GlobalProperty *compat_props;
const char *hw_version;
};
@@ -100,6 +101,7 @@ struct MachineClass {
int is_default;
const char *default_machine_opts;
const char *default_boot_order;
+ const char *default_display;
GlobalProperty *compat_props;
const char *hw_version;
diff --git a/vl.c b/vl.c
index 35c1333eeea..2c4ea510f12 100644
--- a/vl.c
+++ b/vl.c
@@ -1444,6 +1444,7 @@ static void machine_class_init(ObjectClass *oc, void *data)
mc->is_default = qm->is_default;
mc->default_machine_opts = qm->default_machine_opts;
mc->default_boot_order = qm->default_boot_order;
+ mc->default_display = qm->default_display;
mc->compat_props = qm->compat_props;
mc->hw_version = qm->hw_version;
}
@@ -4223,7 +4224,9 @@ int main(int argc, char **argv, char **envp)
/* If no default VGA is requested, the default is "none". */
if (default_vga) {
- if (cirrus_vga_available()) {
+ if (machine_class->default_display) {
+ vga_model = machine_class->default_display;
+ } else if (cirrus_vga_available()) {
vga_model = "cirrus";
} else if (vga_available()) {
vga_model = "std";