From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51670) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XlH1e-0000h6-SV for qemu-devel@nongnu.org; Mon, 03 Nov 2014 07:46:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XlH1Y-00009a-Hq for qemu-devel@nongnu.org; Mon, 03 Nov 2014 07:46:26 -0500 Received: from mx1.redhat.com ([209.132.183.28]:54271) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XlH1Y-00009R-85 for qemu-devel@nongnu.org; Mon, 03 Nov 2014 07:46:20 -0500 Date: Mon, 3 Nov 2014 14:46:14 +0200 From: "Michael S. Tsirkin" Message-ID: <1415018633-16041-29-git-send-email-mst@redhat.com> References: <1415018633-16041-1-git-send-email-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1415018633-16041-1-git-send-email-mst@redhat.com> Subject: [Qemu-devel] [PULL 28/29] vga: add default display to machine class List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , Richard Henderson , Gerd Hoffmann , Anthony Liguori , Paolo Bonzini From: Gerd Hoffmann 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 Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/boards.h | 2 ++ hw/i386/pc.c | 1 + vl.c | 5 ++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index 4429a1e..99a172d 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/hw/i386/pc.c b/hw/i386/pc.c index dc2fe6a..1205db8 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/vl.c b/vl.c index 35c1333..2c4ea51 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"; -- MST