From: Dave Airlie <airl...@redhat.com> In order to implement virtio-vga on top of virtio-gpu we need to be able to wrap the first console virtio-gpu registers from inside virtio-vga which initialises after virtio-gpu. With this interface virtio-vga can store the virtio-gpu interfaces, and call them from its own ones.
Signed-off-by: Dave Airlie <airl...@redhat.com> --- include/ui/console.h | 7 +++++++ ui/console.c | 13 +++++++++++++ 2 files changed, 20 insertions(+) diff --git a/include/ui/console.h b/include/ui/console.h index be304fe..a143a0d 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -286,6 +286,13 @@ QemuConsole *graphic_console_init(DeviceState *dev, const GraphicHwOps *ops, void *opaque); +void graphic_console_wrap(QemuConsole *con, + DeviceState *dev, + const GraphicHwOps *ops, + void *opaque, + const GraphicHwOps **orig_ops, + void **orig_opaque); + void graphic_hw_update(QemuConsole *con); void graphic_hw_invalidate(QemuConsole *con); void graphic_hw_text_update(QemuConsole *con, console_ch_t *chardata); diff --git a/ui/console.c b/ui/console.c index 4248a6f..80e17e5 100644 --- a/ui/console.c +++ b/ui/console.c @@ -1658,6 +1658,19 @@ QemuConsole *graphic_console_init(DeviceState *dev, return s; } +void graphic_console_wrap(QemuConsole *con, + DeviceState *dev, + const GraphicHwOps *hw_ops, + void *opaque, + const GraphicHwOps **orig_ops, + void **orig_opaque) +{ + *orig_opaque = con->hw; + *orig_ops = con->hw_ops; + con->hw_ops = hw_ops; + con->hw = opaque; +} + QemuConsole *qemu_console_lookup_by_index(unsigned int index) { if (index >= MAX_CONSOLES) { -- 1.8.3.1