summary refs log tree commit diff stats
path: root/ui
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2014-09-24 17:05:27 +0200
committerGerd Hoffmann <kraxel@redhat.com>2014-09-29 10:20:09 +0200
commit1c1f94984430f5b9e91b01b75be23385122039f6 (patch)
treec0df378d7e70db3f077f51fb681d58c7c5ea8a05 /ui
parent81ab11a7a524d12412a59ef49c6b270671e62ea0 (diff)
downloadfocaccia-qemu-1c1f94984430f5b9e91b01b75be23385122039f6.tar.gz
focaccia-qemu-1c1f94984430f5b9e91b01b75be23385122039f6.zip
console: add graphic_console_set_hwops
Add a function to allow display emulations to switch the hwops
function pointers.  This is useful for devices which have two
completely different operation modes.  Typical case is the vga
compatibility mode vs. native mode in qxl and the upcoming
virtio-vga device.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'ui')
-rw-r--r--ui/console.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/ui/console.c b/ui/console.c
index f819382b24..258af5dfff 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -1677,6 +1677,14 @@ DisplayState *init_displaystate(void)
     return display_state;
 }
 
+void graphic_console_set_hwops(QemuConsole *con,
+                               const GraphicHwOps *hw_ops,
+                               void *opaque)
+{
+    con->hw_ops = hw_ops;
+    con->hw = opaque;
+}
+
 QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
                                   const GraphicHwOps *hw_ops,
                                   void *opaque)
@@ -1691,8 +1699,7 @@ QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
     ds = get_alloc_displaystate();
     trace_console_gfx_new();
     s = new_console(ds, GRAPHIC_CONSOLE, head);
-    s->hw_ops = hw_ops;
-    s->hw = opaque;
+    graphic_console_set_hwops(s, hw_ops, opaque);
     if (dev) {
         object_property_set_link(OBJECT(s), OBJECT(dev), "device",
                                  &error_abort);