From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46441) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vj0if-00068R-LZ for qemu-devel@nongnu.org; Wed, 20 Nov 2013 00:53:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Vj0iY-0002Qu-Es for qemu-devel@nongnu.org; Wed, 20 Nov 2013 00:52:57 -0500 Received: from mx1.redhat.com ([209.132.183.28]:46321) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vj0iY-0002Qp-6A for qemu-devel@nongnu.org; Wed, 20 Nov 2013 00:52:50 -0500 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rAK5qnkj014608 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 20 Nov 2013 00:52:49 -0500 Received: from dreadlord-bne-redhat-com.bne.redhat.com (dhcp-40-7.bne.redhat.com [10.64.40.7]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id rAK5qgkI022518 for ; Wed, 20 Nov 2013 00:52:48 -0500 From: Dave Airlie Date: Wed, 20 Nov 2013 15:52:37 +1000 Message-Id: <1384926761-9962-5-git-send-email-airlied@gmail.com> In-Reply-To: <1384926761-9962-1-git-send-email-airlied@gmail.com> References: <1384926761-9962-1-git-send-email-airlied@gmail.com> Subject: [Qemu-devel] [PATCH 4/8] console: add ability to wrap a console. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org From: Dave Airlie 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 --- 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