Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2222120/?format=api
{ "id": 2222120, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2222120/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260410-qemu-vnc-v2-60-231416f76dc3@redhat.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/1.1/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260410-qemu-vnc-v2-60-231416f76dc3@redhat.com>", "date": "2026-04-10T19:19:22", "name": "[v2,60/67] ui/console: rename public API to use consistent qemu_console_ prefix", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "f0f4a2548a3ee8eca7c74846b2cac848a2c7dc0d", "submitter": { "id": 66774, "url": "http://patchwork.ozlabs.org/api/1.1/people/66774/?format=api", "name": "Marc-André Lureau", "email": "marcandre.lureau@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260410-qemu-vnc-v2-60-231416f76dc3@redhat.com/mbox/", "series": [ { "id": 499494, "url": "http://patchwork.ozlabs.org/api/1.1/series/499494/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=499494", "date": "2026-04-10T19:18:23", "name": "ui: add standalone VNC server over D-Bus", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/499494/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2222120/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2222120/checks/", "tags": {}, "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=QIKTFA8P;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fsmyc3cn2z1yGb\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 11 Apr 2026 05:27:04 +1000 (AEST)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wBHTr-0007Zc-G3; Fri, 10 Apr 2026 15:25:27 -0400", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <marcandre.lureau@redhat.com>)\n id 1wBHTa-0007P9-Tc\n for qemu-devel@nongnu.org; Fri, 10 Apr 2026 15:25:13 -0400", "from us-smtp-delivery-124.mimecast.com ([170.10.129.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <marcandre.lureau@redhat.com>)\n id 1wBHTT-0002jI-53\n for qemu-devel@nongnu.org; Fri, 10 Apr 2026 15:25:10 -0400", "from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-363-imkVm4RcNXSfn3P3B7tRZw-1; Fri,\n 10 Apr 2026 15:24:54 -0400", "from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id C449F195608F\n for <qemu-devel@nongnu.org>; Fri, 10 Apr 2026 19:24:53 +0000 (UTC)", "from localhost (unknown [10.44.22.4])\n by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id 51F8F18002A6; Fri, 10 Apr 2026 19:24:50 +0000 (UTC)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1775849097;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=aQkA2DSqZlPisb8lLgT74xUeCra9Q1sPuB1khMGY49Q=;\n b=QIKTFA8PNr9mM5MvpI9r6K7GYr5vF5MhNvXvuK8bh1SBtYRTL84gr/aY7axdEB91Iq6itg\n YRPREy+4IBm0chvZrvCnFUu6rSrdpiDvfKR0uDoAg92ZT/EMhIM2dRhlvoWrW7hwgLvp6j\n Rm2eg0c+2DuC/x6bZLBvgvD3cmem1Do=", "X-MC-Unique": "imkVm4RcNXSfn3P3B7tRZw-1", "X-Mimecast-MFC-AGG-ID": "imkVm4RcNXSfn3P3B7tRZw_1775849093", "From": "=?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>", "Date": "Fri, 10 Apr 2026 23:19:22 +0400", "Subject": "[PATCH v2 60/67] ui/console: rename public API to use consistent\n qemu_console_ prefix", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "8bit", "Message-Id": "<20260410-qemu-vnc-v2-60-231416f76dc3@redhat.com>", "References": "<20260410-qemu-vnc-v2-0-231416f76dc3@redhat.com>", "In-Reply-To": "<20260410-qemu-vnc-v2-0-231416f76dc3@redhat.com>", "To": "qemu-devel@nongnu.org", "Cc": "=?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>", "X-Developer-Signature": "v=1; a=openpgp-sha256; l=111649;\n i=marcandre.lureau@redhat.com; h=from:subject:message-id;\n bh=P9VRIk2Z+wW2zb09YoDP6fxWYaYrsi2xMuPQKG6mhv8=;\n b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBp2U0XqvCu0LCqIKVsIOPjszAuu/74wwTphj3rf\n 9QVD+jcMWuJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCadlNFwAKCRDa6OEJdZac\n 5WQaEACMtV3sS6qICmgWz6d+PbDlIGDSzlzRpnNQWJj4L+HD8aQzh/DgyhqhK1jwxZjeQ9dE3oz\n QWzy9klrWOk3LjAKzikktJEoubSIzNNmWALNHl+g9nnT99YnXaWQ8ueCq5VrzxlAWzRxZtHCNqT\n DThmHso1auO8irnTzWuFv7FeqjBGL83YFLZZtuyZRObsVLNWwCIVzqb0kerASk8CgecV5nYevuS\n WFm0L9mjid+/H1l0ax/wELbMobOaMJWdwCISJjDL5IbkBYVR1GA5jvbVTszwzqBmLywWdOlNiqJ\n ksIMtCAYx4Rc3lAo6eliYZMCSUieJfQnjHmd8R20KSG2A/VTU7LTw7NeiKl6r9ieunqQnZ4604D\n jsq9qvOnAapyTU05xAFeyZWM0+nrW2GMdVzA5yzc6JYK3TO1/xegp5pziBnLHnEtHnAiPcb0Ryn\n K4AD349Cvxb6QJ34feHsrO32qYAApSeV02pQDmoWaJNxI5Afsd6Sohz2z3R+XzG53LJrUm5EJ5n\n 16mGRQB3uMWoyXfbBf8dg8Gwz5i+LfUKMRfAUqOYs8XtOGC0njV7viPG9Nu1phM/O9Jlw7taK61\n /p+jCV8hWd1wAbfEAaMMaafGss1PTSQsVH93xES7qypDEMR7bM+z3AI4k9qPuOQjGvMBOCiUedN\n hwBRrcgIswgcG5w==", "X-Developer-Key": "i=marcandre.lureau@redhat.com; a=openpgp;\n fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5", "X-Scanned-By": "MIMEDefang 3.4.1 on 10.30.177.111", "Received-SPF": "pass client-ip=170.10.129.124;\n envelope-from=marcandre.lureau@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com", "X-Spam_score_int": "7", "X-Spam_score": "0.7", "X-Spam_bar": "/", "X-Spam_report": "(0.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.54,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n RCVD_IN_SBL_CSS=3.335, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,\n RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001,\n SPF_PASS=-0.001 autolearn=no autolearn_force=no", "X-Spam_action": "no action", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "qemu development <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "Rename the display and graphic console public functions to follow a\nconsistent qemu_console_ (or qemu_graphic_console_) naming convention.\n\nThe previous API used a mix of prefixes: dpy_, graphic_hw_,\ngraphic_console_, console_has_, and update_displaychangelistener().\nUnify them under a common qemu_console_ namespace for better\ndiscoverability and consistency.\n\nThe main renames are:\n- dpy_gfx_*() / dpy_text_*() / dpy_gl_*() → qemu_console_*()\n- dpy_{get,set}_ui_info() → qemu_console_{get,set}_ui_info()\n- graphic_hw_*() → qemu_console_hw_*()\n- graphic_console_*() → qemu_graphic_console_*()\n- console_has_gl() → qemu_console_has_gl()\n- update_displaychangelistener() → qemu_console_listener_set_refresh()\n\nNo functional changes.\n\nSigned-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>\n---\n include/ui/console.h | 108 +++++++++++++++---------------\n hw/arm/musicpal.c | 4 +-\n hw/display/artist.c | 4 +-\n hw/display/ati.c | 16 ++---\n hw/display/bcm2835_fb.c | 5 +-\n hw/display/bochs-display.c | 14 ++--\n hw/display/cg3.c | 6 +-\n hw/display/cirrus_vga.c | 8 +--\n hw/display/cirrus_vga_isa.c | 2 +-\n hw/display/dm163.c | 6 +-\n hw/display/exynos4210_fimd.c | 4 +-\n hw/display/g364fb.c | 10 +--\n hw/display/jazz_led.c | 8 +--\n hw/display/macfb.c | 6 +-\n hw/display/next-fb.c | 4 +-\n hw/display/omap_lcdc.c | 4 +-\n hw/display/pl110.c | 4 +-\n hw/display/qxl-render.c | 12 ++--\n hw/display/qxl.c | 14 ++--\n hw/display/ramfb-standalone.c | 2 +-\n hw/display/ramfb.c | 4 +-\n hw/display/sm501.c | 6 +-\n hw/display/ssd0303.c | 4 +-\n hw/display/ssd0323.c | 5 +-\n hw/display/tcx.c | 16 ++---\n hw/display/vga-isa.c | 2 +-\n hw/display/vga-mmio.c | 2 +-\n hw/display/vga-pci.c | 6 +-\n hw/display/vga.c | 40 ++++++-----\n hw/display/vhost-user-gpu.c | 22 +++---\n hw/display/virtio-gpu-base.c | 2 +-\n hw/display/virtio-gpu-rutabaga.c | 10 +--\n hw/display/virtio-gpu-udmabuf.c | 4 +-\n hw/display/virtio-gpu-virgl.c | 20 +++---\n hw/display/virtio-gpu.c | 26 ++++----\n hw/display/virtio-vga.c | 2 +-\n hw/display/vmware_vga.c | 12 ++--\n hw/display/xenfb.c | 6 +-\n hw/display/xlnx_dp.c | 10 +--\n hw/vfio/display.c | 32 ++++-----\n ui/console-vc.c | 12 ++--\n ui/console.c | 140 +++++++++++++++++++--------------------\n ui/curses.c | 8 +--\n ui/dbus-console.c | 4 +-\n ui/dbus-listener.c | 10 +--\n ui/egl-headless.c | 4 +-\n ui/gtk-egl.c | 6 +-\n ui/gtk-gl-area.c | 6 +-\n ui/gtk.c | 18 ++---\n ui/sdl2-2d.c | 2 +-\n ui/sdl2-gl.c | 2 +-\n ui/sdl2.c | 6 +-\n ui/spice-display.c | 16 ++---\n ui/vnc.c | 22 +++---\n hw/display/apple-gfx.m | 16 ++---\n ui/cocoa.m | 10 +--\n 56 files changed, 372 insertions(+), 382 deletions(-)", "diff": "diff --git a/include/ui/console.h b/include/ui/console.h\nindex c93ab7d619e..5566d1f65f9 100644\n--- a/include/ui/console.h\n+++ b/include/ui/console.h\n@@ -308,49 +308,49 @@ DisplayState *init_displaystate(void);\n void qemu_console_register_listener(QemuConsole *con,\n DisplayChangeListener *dcl,\n const DisplayChangeListenerOps *ops);\n-void update_displaychangelistener(DisplayChangeListener *dcl,\n- uint64_t interval);\n+void qemu_console_listener_set_refresh(DisplayChangeListener *dcl,\n+ uint64_t interval);\n void qemu_console_unregister_listener(DisplayChangeListener *dcl);\n \n-bool dpy_ui_info_supported(const QemuConsole *con);\n-const QemuUIInfo *dpy_get_ui_info(const QemuConsole *con);\n-int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay);\n-\n-void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h);\n-void dpy_gfx_update_full(QemuConsole *con);\n-void dpy_gfx_replace_surface(QemuConsole *con,\n- DisplaySurface *surface);\n-void dpy_text_cursor(QemuConsole *con, int x, int y);\n-void dpy_text_update(QemuConsole *con, int x, int y, int w, int h);\n-void dpy_text_resize(QemuConsole *con, int w, int h);\n-void dpy_mouse_set(QemuConsole *con, int x, int y, bool on);\n-void dpy_cursor_define(QemuConsole *con, QEMUCursor *cursor);\n-bool dpy_gfx_check_format(QemuConsole *con,\n- pixman_format_code_t format);\n-\n-void dpy_gl_scanout_disable(QemuConsole *con);\n-void dpy_gl_scanout_texture(QemuConsole *con,\n- uint32_t backing_id, bool backing_y_0_top,\n- uint32_t backing_width, uint32_t backing_height,\n- uint32_t x, uint32_t y, uint32_t w, uint32_t h,\n- void *d3d_tex2d);\n-void dpy_gl_scanout_dmabuf(QemuConsole *con,\n- QemuDmaBuf *dmabuf);\n-void dpy_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,\n- bool have_hot, uint32_t hot_x, uint32_t hot_y);\n-void dpy_gl_cursor_position(QemuConsole *con,\n- uint32_t pos_x, uint32_t pos_y);\n-void dpy_gl_release_dmabuf(QemuConsole *con,\n- QemuDmaBuf *dmabuf);\n-void dpy_gl_update(QemuConsole *con,\n- uint32_t x, uint32_t y, uint32_t w, uint32_t h);\n-\n-QEMUGLContext dpy_gl_ctx_create(QemuConsole *con,\n- QEMUGLParams *params);\n-void dpy_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx);\n-int dpy_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx);\n-\n-bool console_has_gl(QemuConsole *con);\n+bool qemu_console_ui_info_supported(const QemuConsole *con);\n+const QemuUIInfo *qemu_console_get_ui_info(const QemuConsole *con);\n+int qemu_console_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay);\n+\n+void qemu_console_update(QemuConsole *con, int x, int y, int w, int h);\n+void qemu_console_update_full(QemuConsole *con);\n+void qemu_console_set_surface(QemuConsole *con,\n+ DisplaySurface *surface);\n+void qemu_console_text_set_cursor(QemuConsole *con, int x, int y);\n+void qemu_console_text_update(QemuConsole *con, int x, int y, int w, int h);\n+void qemu_console_text_resize(QemuConsole *con, int w, int h);\n+void qemu_console_set_mouse(QemuConsole *con, int x, int y, bool on);\n+void qemu_console_set_cursor(QemuConsole *con, QEMUCursor *cursor);\n+bool qemu_console_check_format(QemuConsole *con,\n+ pixman_format_code_t format);\n+\n+void qemu_console_gl_scanout_disable(QemuConsole *con);\n+void qemu_console_gl_scanout_texture(QemuConsole *con,\n+ uint32_t backing_id, bool backing_y_0_top,\n+ uint32_t backing_width, uint32_t backing_height,\n+ uint32_t x, uint32_t y, uint32_t w, uint32_t h,\n+ void *d3d_tex2d);\n+void qemu_console_gl_scanout_dmabuf(QemuConsole *con,\n+ QemuDmaBuf *dmabuf);\n+void qemu_console_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,\n+ bool have_hot, uint32_t hot_x, uint32_t hot_y);\n+void qemu_console_gl_cursor_position(QemuConsole *con,\n+ uint32_t pos_x, uint32_t pos_y);\n+void qemu_console_gl_release_dmabuf(QemuConsole *con,\n+ QemuDmaBuf *dmabuf);\n+void qemu_console_gl_update(QemuConsole *con,\n+ uint32_t x, uint32_t y, uint32_t w, uint32_t h);\n+\n+QEMUGLContext qemu_console_gl_ctx_create(QemuConsole *con,\n+ QEMUGLParams *params);\n+void qemu_console_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx);\n+int qemu_console_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx);\n+\n+bool qemu_console_has_gl(QemuConsole *con);\n \n enum {\n GRAPHIC_FLAGS_NONE = 0,\n@@ -375,19 +375,19 @@ typedef struct GraphicHwOps {\n void (*gl_block)(void *opaque, bool block);\n } GraphicHwOps;\n \n-QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,\n- const GraphicHwOps *ops,\n- void *opaque);\n-void graphic_console_set_hwops(QemuConsole *con,\n- const GraphicHwOps *hw_ops,\n- void *opaque);\n-void graphic_console_close(QemuConsole *con);\n-\n-void graphic_hw_update(QemuConsole *con);\n-void graphic_hw_update_done(QemuConsole *con);\n-void graphic_hw_invalidate(QemuConsole *con);\n-void graphic_hw_text_update(QemuConsole *con, uint32_t *chardata);\n-void graphic_hw_gl_block(QemuConsole *con, bool block);\n+QemuConsole *qemu_graphic_console_create(DeviceState *dev, uint32_t head,\n+ const GraphicHwOps *ops,\n+ void *opaque);\n+void qemu_graphic_console_set_hwops(QemuConsole *con,\n+ const GraphicHwOps *hw_ops,\n+ void *opaque);\n+void qemu_graphic_console_close(QemuConsole *con);\n+\n+void qemu_console_hw_update(QemuConsole *con);\n+void qemu_console_hw_update_done(QemuConsole *con);\n+void qemu_console_hw_invalidate(QemuConsole *con);\n+void qemu_console_hw_text_update(QemuConsole *con, uint32_t *chardata);\n+void qemu_console_hw_gl_block(QemuConsole *con, bool block);\n \n void qemu_console_early_init(void);\n \ndiff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c\nindex 913f98b5d8e..2f43d774dbe 100644\n--- a/hw/arm/musicpal.c\n+++ b/hw/arm/musicpal.c\n@@ -171,7 +171,7 @@ static bool lcd_refresh(void *opaque)\n }\n }\n \n- dpy_gfx_update(s->con, 0, 0, 128*3, 64*3);\n+ qemu_console_update(s->con, 0, 0, 128*3, 64*3);\n return true;\n }\n \n@@ -254,7 +254,7 @@ static const GraphicHwOps musicpal_gfx_ops = {\n static void musicpal_lcd_realize(DeviceState *dev, Error **errp)\n {\n musicpal_lcd_state *s = MUSICPAL_LCD(dev);\n- s->con = graphic_console_init(dev, 0, &musicpal_gfx_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &musicpal_gfx_ops, s);\n qemu_console_resize(s->con, 128 * 3, 64 * 3);\n }\n \ndiff --git a/hw/display/artist.c b/hw/display/artist.c\nindex a07508378c7..288d466ec64 100644\n--- a/hw/display/artist.c\n+++ b/hw/display/artist.c\n@@ -1324,7 +1324,7 @@ static bool artist_update_display(void *opaque)\n artist_draw_cursor(s);\n \n if (first >= 0) {\n- dpy_gfx_update(s->con, 0, first, s->width, last - first + 1);\n+ qemu_console_update(s->con, 0, first, s->width, last - first + 1);\n }\n \n return true;\n@@ -1424,7 +1424,7 @@ static void artist_realizefn(DeviceState *dev, Error **errp)\n s->misc_video |= 0x0A000000;\n s->misc_ctrl |= 0x00800000;\n \n- s->con = graphic_console_init(dev, 0, &artist_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &artist_ops, s);\n qemu_console_resize(s->con, s->width, s->height);\n }\n \ndiff --git a/hw/display/ati.c b/hw/display/ati.c\nindex 88a5bbbf07a..882ffc1bcf9 100644\n--- a/hw/display/ati.c\n+++ b/hw/display/ati.c\n@@ -161,7 +161,7 @@ static void ati_cursor_define(ATIVGAState *s)\n }\n cursor_set_mono(s->cursor, s->regs.cur_color1, s->regs.cur_color0,\n (uint8_t *)&data[64], 1, (uint8_t *)&data[0]);\n- dpy_cursor_define(s->vga.con, s->cursor);\n+ qemu_console_set_cursor(s->vga.con, s->cursor);\n }\n \n /* Alternatively support guest rendered hardware cursor */\n@@ -624,9 +624,9 @@ static void ati_mm_write(void *opaque, hwaddr addr,\n if (s->regs.crtc_gen_cntl & CRTC2_CUR_EN) {\n ati_cursor_define(s);\n }\n- dpy_mouse_set(s->vga.con, s->regs.cur_hv_pos >> 16,\n- s->regs.cur_hv_pos & 0xffff,\n- (s->regs.crtc_gen_cntl & CRTC2_CUR_EN) != 0);\n+ qemu_console_set_mouse(s->vga.con, s->regs.cur_hv_pos >> 16,\n+ s->regs.cur_hv_pos & 0xffff,\n+ (s->regs.crtc_gen_cntl & CRTC2_CUR_EN) != 0);\n }\n }\n if ((val & (CRTC2_EXT_DISP_EN | CRTC2_EN)) !=\n@@ -778,8 +778,8 @@ static void ati_mm_write(void *opaque, hwaddr addr,\n }\n if (!s->cursor_guest_mode &&\n (s->regs.crtc_gen_cntl & CRTC2_CUR_EN) && !(t & BIT(31))) {\n- dpy_mouse_set(s->vga.con, s->regs.cur_hv_pos >> 16,\n- s->regs.cur_hv_pos & 0xffff, true);\n+ qemu_console_set_mouse(s->vga.con, s->regs.cur_hv_pos >> 16,\n+ s->regs.cur_hv_pos & 0xffff, true);\n }\n break;\n }\n@@ -1092,7 +1092,7 @@ static void ati_vga_realize(PCIDevice *dev, Error **errp)\n }\n vga_init(vga, OBJECT(s), pci_address_space(dev),\n pci_address_space_io(dev), true);\n- vga->con = graphic_console_init(DEVICE(s), 0, s->vga.hw_ops, vga);\n+ vga->con = qemu_graphic_console_create(DEVICE(s), 0, s->vga.hw_ops, vga);\n if (s->cursor_guest_mode) {\n vga->cursor_invalidate = ati_cursor_invalidate;\n vga->cursor_draw_line = ati_cursor_draw_line;\n@@ -1165,7 +1165,7 @@ static void ati_vga_exit(PCIDevice *dev)\n ATIVGAState *s = ATI_VGA(dev);\n \n timer_del(&s->vblank_timer);\n- graphic_console_close(s->vga.con);\n+ qemu_graphic_console_close(s->vga.con);\n }\n \n static const Property ati_vga_properties[] = {\ndiff --git a/hw/display/bcm2835_fb.c b/hw/display/bcm2835_fb.c\nindex 83c4c03c7ca..bd58f625fcd 100644\n--- a/hw/display/bcm2835_fb.c\n+++ b/hw/display/bcm2835_fb.c\n@@ -207,8 +207,7 @@ static bool fb_update_display(void *opaque)\n draw_line_src16, s, &first, &last);\n \n if (first >= 0) {\n- dpy_gfx_update(s->con, 0, first, s->config.xres,\n- last - first + 1);\n+ qemu_console_update(s->con, 0, first, s->config.xres, last - first + 1);\n }\n \n s->invalidate = false;\n@@ -427,7 +426,7 @@ static void bcm2835_fb_realize(DeviceState *dev, Error **errp)\n \n bcm2835_fb_reset(dev);\n \n- s->con = graphic_console_init(dev, 0, &vgafb_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &vgafb_ops, s);\n qemu_console_resize(s->con, s->config.xres, s->config.yres);\n }\n \ndiff --git a/hw/display/bochs-display.c b/hw/display/bochs-display.c\nindex 8ef9b76cf85..64e669429c4 100644\n--- a/hw/display/bochs-display.c\n+++ b/hw/display/bochs-display.c\n@@ -224,12 +224,12 @@ static bool bochs_display_update(void *opaque)\n mode.format,\n mode.stride,\n ptr + mode.offset);\n- dpy_gfx_replace_surface(s->con, ds);\n+ qemu_console_set_surface(s->con, ds);\n full_update = true;\n }\n \n if (full_update) {\n- dpy_gfx_update_full(s->con);\n+ qemu_console_update_full(s->con);\n } else {\n snap = memory_region_snapshot_and_clear_dirty(&s->vram,\n mode.offset, mode.size,\n@@ -243,14 +243,12 @@ static bool bochs_display_update(void *opaque)\n ys = y;\n }\n if (!dirty && ys >= 0) {\n- dpy_gfx_update(s->con, 0, ys,\n- mode.width, y - ys);\n+ qemu_console_update(s->con, 0, ys, mode.width, y - ys);\n ys = -1;\n }\n }\n if (ys >= 0) {\n- dpy_gfx_update(s->con, 0, ys,\n- mode.width, y - ys);\n+ qemu_console_update(s->con, 0, ys, mode.width, y - ys);\n }\n \n g_free(snap);\n@@ -279,7 +277,7 @@ static void bochs_display_realize(PCIDevice *dev, Error **errp)\n }\n s->vgamem = pow2ceil(s->vgamem);\n \n- s->con = graphic_console_init(DEVICE(dev), 0, &bochs_display_gfx_ops, s);\n+ s->con = qemu_graphic_console_create(DEVICE(dev), 0, &bochs_display_gfx_ops, s);\n \n memory_region_init_ram(&s->vram, obj, \"bochs-display-vram\", s->vgamem,\n &error_fatal);\n@@ -344,7 +342,7 @@ static void bochs_display_exit(PCIDevice *dev)\n {\n BochsDisplayState *s = BOCHS_DISPLAY(dev);\n \n- graphic_console_close(s->con);\n+ qemu_graphic_console_close(s->con);\n }\n \n static const Property bochs_display_properties[] = {\ndiff --git a/hw/display/cg3.c b/hw/display/cg3.c\nindex 963bb3427a6..f9dda1549dd 100644\n--- a/hw/display/cg3.c\n+++ b/hw/display/cg3.c\n@@ -137,7 +137,7 @@ static bool cg3_update_display(void *opaque)\n }\n } else {\n if (y_start >= 0) {\n- dpy_gfx_update(s->con, 0, y_start, width, y - y_start);\n+ qemu_console_update(s->con, 0, y_start, width, y - y_start);\n y_start = -1;\n }\n pix += width;\n@@ -146,7 +146,7 @@ static bool cg3_update_display(void *opaque)\n }\n s->full_update = 0;\n if (y_start >= 0) {\n- dpy_gfx_update(s->con, 0, y_start, width, y - y_start);\n+ qemu_console_update(s->con, 0, y_start, width, y - y_start);\n }\n /* vsync interrupt? */\n if (s->regs[0] & CG3_CR_ENABLE_INTS) {\n@@ -311,7 +311,7 @@ static void cg3_realizefn(DeviceState *dev, Error **errp)\n \n sysbus_init_irq(sbd, &s->irq);\n \n- s->con = graphic_console_init(dev, 0, &cg3_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &cg3_ops, s);\n qemu_console_resize(s->con, s->width, s->height);\n }\n \ndiff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c\nindex 48be3c8a932..0a8c74e1374 100644\n--- a/hw/display/cirrus_vga.c\n+++ b/hw/display/cirrus_vga.c\n@@ -779,9 +779,9 @@ static int cirrus_do_copy(CirrusVGAState *s, int dst, int src, int w, int h)\n s->cirrus_blt_width, s->cirrus_blt_height);\n \n if (notify) {\n- dpy_gfx_update(s->vga.con, dx, dy,\n- s->cirrus_blt_width / depth,\n- s->cirrus_blt_height);\n+ qemu_console_update(s->vga.con, dx, dy,\n+ s->cirrus_blt_width / depth,\n+ s->cirrus_blt_height);\n }\n \n /* we don't have to notify the display that this portion has\n@@ -2964,7 +2964,7 @@ static void pci_cirrus_vga_realize(PCIDevice *dev, Error **errp)\n }\n cirrus_init_common(s, OBJECT(dev), device_id, 1, pci_address_space(dev),\n pci_address_space_io(dev));\n- s->vga.con = graphic_console_init(DEVICE(dev), 0, s->vga.hw_ops, &s->vga);\n+ s->vga.con = qemu_graphic_console_create(DEVICE(dev), 0, s->vga.hw_ops, &s->vga);\n \n /* setup PCI */\n memory_region_init(&s->pci_bar, OBJECT(dev), \"cirrus-pci-bar0\", 0x2000000);\ndiff --git a/hw/display/cirrus_vga_isa.c b/hw/display/cirrus_vga_isa.c\nindex 76034a88605..b8052d1d8ed 100644\n--- a/hw/display/cirrus_vga_isa.c\n+++ b/hw/display/cirrus_vga_isa.c\n@@ -62,7 +62,7 @@ static void isa_cirrus_vga_realizefn(DeviceState *dev, Error **errp)\n cirrus_init_common(&d->cirrus_vga, OBJECT(dev), CIRRUS_ID_CLGD5430, 0,\n isa_address_space(isadev),\n isa_address_space_io(isadev));\n- s->con = graphic_console_init(dev, 0, s->hw_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, s->hw_ops, s);\n rom_add_vga(VGABIOS_CIRRUS_FILENAME);\n /* XXX ISA-LFB support */\n /* FIXME not qdev yet */\ndiff --git a/hw/display/dm163.c b/hw/display/dm163.c\nindex 9ea62cb4f76..afade0b98c3 100644\n--- a/hw/display/dm163.c\n+++ b/hw/display/dm163.c\n@@ -277,8 +277,8 @@ static uint32_t *update_display_of_row(DM163State *s, uint32_t *dest,\n }\n }\n \n- dpy_gfx_update(s->console, 0, LED_SQUARE_SIZE * row,\n- RGB_MATRIX_NUM_COLS * LED_SQUARE_SIZE, LED_SQUARE_SIZE);\n+ qemu_console_update(s->console, 0, LED_SQUARE_SIZE * row,\n+ RGB_MATRIX_NUM_COLS * LED_SQUARE_SIZE, LED_SQUARE_SIZE);\n s->redraw &= ~(1 << row);\n trace_dm163_redraw(s->redraw);\n \n@@ -322,7 +322,7 @@ static void dm163_realize(DeviceState *dev, Error **errp)\n qdev_init_gpio_in(dev, dm163_en_b_gpio_handler, 1);\n qdev_init_gpio_out_named(dev, &s->sout, \"sout\", 1);\n \n- s->console = graphic_console_init(dev, 0, &dm163_ops, s);\n+ s->console = qemu_graphic_console_create(dev, 0, &dm163_ops, s);\n qemu_console_resize(s->console, RGB_MATRIX_NUM_COLS * LED_SQUARE_SIZE,\n RGB_MATRIX_NUM_ROWS * LED_SQUARE_SIZE);\n }\ndiff --git a/hw/display/exynos4210_fimd.c b/hw/display/exynos4210_fimd.c\nindex a91f04aaf79..5133623ee2e 100644\n--- a/hw/display/exynos4210_fimd.c\n+++ b/hw/display/exynos4210_fimd.c\n@@ -1340,7 +1340,7 @@ static bool exynos4210_fimd_update(void *opaque)\n fimd_copy_line_toqemu(global_width, s->ifb + global_width * line *\n RGBA_SIZE, d + global_width * line * bpp);\n }\n- dpy_gfx_update_full(s->console);\n+ qemu_console_update_full(s->console);\n }\n s->invalidate = false;\n s->vidintcon[1] |= FIMD_VIDINT_INTFRMPEND;\n@@ -1964,7 +1964,7 @@ static void exynos4210_fimd_realize(DeviceState *dev, Error **errp)\n return;\n }\n \n- s->console = graphic_console_init(dev, 0, &exynos4210_fimd_ops, s);\n+ s->console = qemu_graphic_console_create(dev, 0, &exynos4210_fimd_ops, s);\n }\n \n static void exynos4210_fimd_class_init(ObjectClass *klass, const void *data)\ndiff --git a/hw/display/g364fb.c b/hw/display/g364fb.c\nindex bd15f6f0acc..af54f1f9005 100644\n--- a/hw/display/g364fb.c\n+++ b/hw/display/g364fb.c\n@@ -191,8 +191,8 @@ static void g364fb_draw_graphic8(G364State *s)\n } else {\n int dy;\n if (xmax || ymax) {\n- dpy_gfx_update(s->con, xmin, ymin,\n- xmax - xmin + 1, ymax - ymin + 1);\n+ qemu_console_update(s->con, xmin, ymin,\n+ xmax - xmin + 1, ymax - ymin + 1);\n xmin = s->width;\n xmax = 0;\n ymin = s->height;\n@@ -211,7 +211,7 @@ static void g364fb_draw_graphic8(G364State *s)\n \n done:\n if (xmax || ymax) {\n- dpy_gfx_update(s->con, xmin, ymin, xmax - xmin + 1, ymax - ymin + 1);\n+ qemu_console_update(s->con, xmin, ymin, xmax - xmin + 1, ymax - ymin + 1);\n }\n g_free(snap);\n }\n@@ -234,7 +234,7 @@ static void g364fb_draw_blank(G364State *s)\n d += surface_stride(surface);\n }\n \n- dpy_gfx_update_full(s->con);\n+ qemu_console_update_full(s->con);\n s->blanked = 1;\n }\n \n@@ -478,7 +478,7 @@ static const GraphicHwOps g364fb_ops = {\n \n static void g364fb_init(DeviceState *dev, G364State *s)\n {\n- s->con = graphic_console_init(dev, 0, &g364fb_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &g364fb_ops, s);\n \n memory_region_init_io(&s->mem_ctrl, OBJECT(dev), &g364fb_ctrl_ops, s,\n \"ctrl\", 0x180000);\ndiff --git a/hw/display/jazz_led.c b/hw/display/jazz_led.c\nindex ee9758a94b5..84fe1058406 100644\n--- a/hw/display/jazz_led.c\n+++ b/hw/display/jazz_led.c\n@@ -217,7 +217,7 @@ static bool jazz_led_update_display(void *opaque)\n }\n \n s->state = REDRAW_NONE;\n- dpy_gfx_update_full(s->con);\n+ qemu_console_update_full(s->con);\n \n return true;\n }\n@@ -233,7 +233,7 @@ static void jazz_led_text_update(void *opaque, uint32_t *chardata)\n LedState *s = opaque;\n char buf[3];\n \n- dpy_text_cursor(s->con, -1, -1);\n+ qemu_console_text_set_cursor(s->con, -1, -1);\n qemu_console_resize(s->con, 2, 1);\n \n /* TODO: draw the segments */\n@@ -243,7 +243,7 @@ static void jazz_led_text_update(void *opaque, uint32_t *chardata)\n *chardata++ = ATTR2CHTYPE(buf[1], QEMU_COLOR_BLUE,\n QEMU_COLOR_BLACK, 1);\n \n- dpy_text_update(s->con, 0, 0, 2, 1);\n+ qemu_console_text_update(s->con, 0, 0, 2, 1);\n }\n \n static int jazz_led_post_load(void *opaque, int version_id)\n@@ -284,7 +284,7 @@ static void jazz_led_realize(DeviceState *dev, Error **errp)\n {\n LedState *s = JAZZ_LED(dev);\n \n- s->con = graphic_console_init(dev, 0, &jazz_led_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &jazz_led_ops, s);\n }\n \n static void jazz_led_reset(DeviceState *d)\ndiff --git a/hw/display/macfb.c b/hw/display/macfb.c\nindex 848c3c282bd..f40a7ed9f52 100644\n--- a/hw/display/macfb.c\n+++ b/hw/display/macfb.c\n@@ -320,14 +320,14 @@ static void macfb_draw_graphic(MacfbState *s)\n }\n } else {\n if (ymin >= 0) {\n- dpy_gfx_update(s->con, 0, ymin, s->width, y - ymin);\n+ qemu_console_update(s->con, 0, ymin, s->width, y - ymin);\n ymin = -1;\n }\n }\n }\n \n if (ymin >= 0) {\n- dpy_gfx_update(s->con, 0, ymin, s->width, y - ymin);\n+ qemu_console_update(s->con, 0, ymin, s->width, y - ymin);\n }\n \n g_free(snap);\n@@ -671,7 +671,7 @@ static bool macfb_common_realize(DeviceState *dev, MacfbState *s, Error **errp)\n s->regs[DAFB_MODE_CTRL1 >> 2] = s->mode->mode_ctrl1;\n s->regs[DAFB_MODE_CTRL2 >> 2] = s->mode->mode_ctrl2;\n \n- s->con = graphic_console_init(dev, 0, &macfb_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &macfb_ops, s);\n surface = qemu_console_surface(s->con);\n \n if (surface_bits_per_pixel(surface) != 32) {\ndiff --git a/hw/display/next-fb.c b/hw/display/next-fb.c\nindex e758b223ef7..fa2e0d0da80 100644\n--- a/hw/display/next-fb.c\n+++ b/hw/display/next-fb.c\n@@ -89,7 +89,7 @@ static bool nextfb_update(void *opaque)\n src_width, dest_width, 0, 1, nextfb_draw_line,\n s, &first, &last);\n \n- dpy_gfx_update(s->con, 0, 0, s->cols, s->rows);\n+ qemu_console_update(s->con, 0, 0, s->cols, s->rows);\n \n return true;\n }\n@@ -117,7 +117,7 @@ static void nextfb_realize(DeviceState *dev, Error **errp)\n s->cols = 1120;\n s->rows = 832;\n \n- s->con = graphic_console_init(dev, 0, &nextfb_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &nextfb_ops, s);\n qemu_console_resize(s->con, s->cols, s->rows);\n }\n \ndiff --git a/hw/display/omap_lcdc.c b/hw/display/omap_lcdc.c\nindex 1e8385ebffb..2a8d5ffdd57 100644\n--- a/hw/display/omap_lcdc.c\n+++ b/hw/display/omap_lcdc.c\n@@ -320,7 +320,7 @@ static bool omap_update_display(void *opaque)\n &first, &last);\n \n if (first >= 0) {\n- dpy_gfx_update(omap_lcd->con, 0, first, width, last - first + 1);\n+ qemu_console_update(omap_lcd->con, 0, first, width, last - first + 1);\n }\n omap_lcd->invalidate = 0;\n \n@@ -504,7 +504,7 @@ struct omap_lcd_panel_s *omap_lcdc_init(MemoryRegion *sysmem,\n memory_region_init_io(&s->iomem, NULL, &omap_lcdc_ops, s, \"omap.lcdc\", 0x100);\n memory_region_add_subregion(sysmem, base, &s->iomem);\n \n- s->con = graphic_console_init(NULL, 0, &omap_ops, s);\n+ s->con = qemu_graphic_console_create(NULL, 0, &omap_ops, s);\n \n return s;\n }\ndiff --git a/hw/display/pl110.c b/hw/display/pl110.c\nindex e134ac28eb6..4a93cf4cda9 100644\n--- a/hw/display/pl110.c\n+++ b/hw/display/pl110.c\n@@ -303,7 +303,7 @@ static bool pl110_update_display(void *opaque)\n &first, &last);\n \n if (first >= 0) {\n- dpy_gfx_update(s->con, 0, first, s->cols, last - first + 1);\n+ qemu_console_update(s->con, 0, first, s->cols, last - first + 1);\n }\n s->invalidate = 0;\n return true;\n@@ -557,7 +557,7 @@ static void pl110_realize(DeviceState *dev, Error **errp)\n s->vblank_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL,\n pl110_vblank_interrupt, s);\n qdev_init_gpio_in(dev, pl110_mux_ctrl_set, 1);\n- s->con = graphic_console_init(dev, 0, &pl110_gfx_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &pl110_gfx_ops, s);\n }\n \n static void pl110_init(Object *obj)\ndiff --git a/hw/display/qxl-render.c b/hw/display/qxl-render.c\nindex 5b4f8842011..7b692d5a854 100644\n--- a/hw/display/qxl-render.c\n+++ b/hw/display/qxl-render.c\n@@ -135,7 +135,7 @@ static void qxl_render_update_area_unlocked(PCIQXLDevice *qxl)\n (width,\n height);\n }\n- dpy_gfx_replace_surface(vga->con, surface);\n+ qemu_console_set_surface(vga->con, surface);\n }\n \n if (!qxl->guest_primary.data) {\n@@ -154,16 +154,16 @@ static void qxl_render_update_area_unlocked(PCIQXLDevice *qxl)\n continue;\n }\n qxl_blit(qxl, qxl->dirty+i);\n- dpy_gfx_update(vga->con,\n- qxl->dirty[i].left, qxl->dirty[i].top,\n- qxl->dirty[i].right - qxl->dirty[i].left,\n- qxl->dirty[i].bottom - qxl->dirty[i].top);\n+ qemu_console_update(vga->con,\n+ qxl->dirty[i].left, qxl->dirty[i].top,\n+ qxl->dirty[i].right - qxl->dirty[i].left,\n+ qxl->dirty[i].bottom - qxl->dirty[i].top);\n }\n qxl->num_dirty_rects = 0;\n \n end:\n if (qxl->render_update_cookie_num == 0) {\n- graphic_hw_update_done(qxl->ssd.dcl.con);\n+ qemu_console_hw_update_done(qxl->ssd.dcl.con);\n }\n }\n \ndiff --git a/hw/display/qxl.c b/hw/display/qxl.c\nindex 6c3a9b1e879..c4da51e4f4c 100644\n--- a/hw/display/qxl.c\n+++ b/hw/display/qxl.c\n@@ -1153,13 +1153,13 @@ static void qxl_enter_vga_mode(PCIQXLDevice *d)\n }\n trace_qxl_enter_vga_mode(d->id);\n spice_qxl_driver_unload(&d->ssd.qxl);\n- graphic_console_set_hwops(d->ssd.dcl.con, d->vga.hw_ops, &d->vga);\n- update_displaychangelistener(&d->ssd.dcl, GUI_REFRESH_INTERVAL_DEFAULT);\n+ qemu_graphic_console_set_hwops(d->ssd.dcl.con, d->vga.hw_ops, &d->vga);\n+ qemu_console_listener_set_refresh(&d->ssd.dcl, GUI_REFRESH_INTERVAL_DEFAULT);\n qemu_spice_create_host_primary(&d->ssd);\n d->mode = QXL_MODE_VGA;\n qemu_spice_display_switch(&d->ssd, d->ssd.ds);\n vga_dirty_log_start(&d->vga);\n- graphic_hw_update(d->vga.con);\n+ qemu_console_hw_update(d->vga.con);\n }\n \n static void qxl_exit_vga_mode(PCIQXLDevice *d)\n@@ -1168,8 +1168,8 @@ static void qxl_exit_vga_mode(PCIQXLDevice *d)\n return;\n }\n trace_qxl_exit_vga_mode(d->id);\n- graphic_console_set_hwops(d->ssd.dcl.con, &qxl_ops, d);\n- update_displaychangelistener(&d->ssd.dcl, GUI_REFRESH_INTERVAL_IDLE);\n+ qemu_graphic_console_set_hwops(d->ssd.dcl.con, &qxl_ops, d);\n+ qemu_console_listener_set_refresh(&d->ssd.dcl, GUI_REFRESH_INTERVAL_IDLE);\n vga_dirty_log_stop(&d->vga);\n qxl_destroy_primary(d, QXL_SYNC);\n }\n@@ -2237,7 +2237,7 @@ static void qxl_realize_primary(PCIDevice *dev, Error **errp)\n portio_list_add(&qxl->vga_port_list, pci_address_space_io(dev), 0x3b0);\n qxl->have_vga = true;\n \n- vga->con = graphic_console_init(DEVICE(dev), 0, &qxl_ops, qxl);\n+ vga->con = qemu_graphic_console_create(DEVICE(dev), 0, &qxl_ops, qxl);\n qxl->id = qemu_console_get_index(vga->con); /* == channel_id */\n if (qxl->id != 0) {\n error_setg(errp, \"primary qxl-vga device must be console 0 \"\n@@ -2262,7 +2262,7 @@ static void qxl_realize_secondary(PCIDevice *dev, Error **errp)\n memory_region_init_ram(&qxl->vga.vram, OBJECT(dev), \"qxl.vgavram\",\n qxl->vga.vram_size, &error_fatal);\n qxl->vga.vram_ptr = memory_region_get_ram_ptr(&qxl->vga.vram);\n- qxl->vga.con = graphic_console_init(DEVICE(dev), 0, &qxl_ops, qxl);\n+ qxl->vga.con = qemu_graphic_console_create(DEVICE(dev), 0, &qxl_ops, qxl);\n qxl->ssd.dcl.con = qxl->vga.con;\n qxl->id = qemu_console_get_index(qxl->vga.con); /* == channel_id */\n \ndiff --git a/hw/display/ramfb-standalone.c b/hw/display/ramfb-standalone.c\nindex 27f0ba19f90..8e8ba37514a 100644\n--- a/hw/display/ramfb-standalone.c\n+++ b/hw/display/ramfb-standalone.c\n@@ -41,7 +41,7 @@ static void ramfb_realizefn(DeviceState *dev, Error **errp)\n {\n RAMFBStandaloneState *ramfb = RAMFB(dev);\n \n- ramfb->con = graphic_console_init(dev, 0, &wrapper_ops, dev);\n+ ramfb->con = qemu_graphic_console_create(dev, 0, &wrapper_ops, dev);\n ramfb->state = ramfb_setup(ramfb->use_legacy_x86_rom, errp);\n }\n \ndiff --git a/hw/display/ramfb.c b/hw/display/ramfb.c\nindex 50c25706a52..7a88f934e11 100644\n--- a/hw/display/ramfb.c\n+++ b/hw/display/ramfb.c\n@@ -111,12 +111,12 @@ void ramfb_display_update(QemuConsole *con, RAMFBState *s)\n }\n \n if (s->ds) {\n- dpy_gfx_replace_surface(con, s->ds);\n+ qemu_console_set_surface(con, s->ds);\n s->ds = NULL;\n }\n \n /* simple full screen update */\n- dpy_gfx_update_full(con);\n+ qemu_console_update_full(con);\n }\n \n static int ramfb_post_load(void *opaque, int version_id)\ndiff --git a/hw/display/sm501.c b/hw/display/sm501.c\nindex a3993ceba29..af870048372 100644\n--- a/hw/display/sm501.c\n+++ b/hw/display/sm501.c\n@@ -1822,7 +1822,7 @@ static bool sm501_update_display(void *opaque)\n } else {\n if (y_start >= 0) {\n /* flush to display */\n- dpy_gfx_update(s->con, 0, y_start, width, y - y_start);\n+ qemu_console_update(s->con, 0, y_start, width, y - y_start);\n y_start = -1;\n }\n }\n@@ -1831,7 +1831,7 @@ static bool sm501_update_display(void *opaque)\n \n /* complete flush to display */\n if (y_start >= 0) {\n- dpy_gfx_update(s->con, 0, y_start, width, y - y_start);\n+ qemu_console_update(s->con, 0, y_start, width, y - y_start);\n }\n \n return true;\n@@ -1936,7 +1936,7 @@ static void sm501_init(SM501State *s, DeviceState *dev,\n &s->twoD_engine_region);\n \n /* create qemu graphic console */\n- s->con = graphic_console_init(dev, 0, &sm501_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &sm501_ops, s);\n }\n \n static const VMStateDescription vmstate_sm501_state = {\ndiff --git a/hw/display/ssd0303.c b/hw/display/ssd0303.c\nindex 229856cc427..4e3dede33f1 100644\n--- a/hw/display/ssd0303.c\n+++ b/hw/display/ssd0303.c\n@@ -268,7 +268,7 @@ static bool ssd0303_update_display(void *opaque)\n }\n }\n s->redraw = 0;\n- dpy_gfx_update(s->con, 0, 0, 96 * MAGNIFY, 16 * MAGNIFY);\n+ qemu_console_update(s->con, 0, 0, 96 * MAGNIFY, 16 * MAGNIFY);\n \n return true;\n }\n@@ -309,7 +309,7 @@ static void ssd0303_realize(DeviceState *dev, Error **errp)\n {\n ssd0303_state *s = SSD0303(dev);\n \n- s->con = graphic_console_init(dev, 0, &ssd0303_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &ssd0303_ops, s);\n qemu_console_resize(s->con, 96 * MAGNIFY, 16 * MAGNIFY);\n }\n \ndiff --git a/hw/display/ssd0323.c b/hw/display/ssd0323.c\nindex 67db16086c8..9309d4d10c4 100644\n--- a/hw/display/ssd0323.c\n+++ b/hw/display/ssd0323.c\n@@ -270,7 +270,8 @@ static bool ssd0323_update_display(void *opaque)\n }\n }\n s->redraw = 0;\n- dpy_gfx_update(s->con, 0, 0, 128 * MAGNIFY, 64 * MAGNIFY);\n+ qemu_console_update(s->con, 0, 0, 128 * MAGNIFY, 64 * MAGNIFY);\n+\n return true;\n }\n \n@@ -356,7 +357,7 @@ static void ssd0323_realize(SSIPeripheral *d, Error **errp)\n \n s->col_end = 63;\n s->row_end = 79;\n- s->con = graphic_console_init(dev, 0, &ssd0323_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &ssd0323_ops, s);\n qemu_console_resize(s->con, 128 * MAGNIFY, 64 * MAGNIFY);\n \n qdev_init_gpio_in(dev, ssd0323_cd, 1);\ndiff --git a/hw/display/tcx.c b/hw/display/tcx.c\nindex cedbf5c7acd..2c33a9c4a32 100644\n--- a/hw/display/tcx.c\n+++ b/hw/display/tcx.c\n@@ -243,8 +243,7 @@ static bool tcx_update_display(void *opaque)\n } else {\n if (y_start >= 0) {\n /* flush to display */\n- dpy_gfx_update(ts->con, 0, y_start,\n- ts->width, y - y_start);\n+ qemu_console_update(ts->con, 0, y_start, ts->width, y - y_start);\n y_start = -1;\n }\n }\n@@ -253,8 +252,7 @@ static bool tcx_update_display(void *opaque)\n }\n if (y_start >= 0) {\n /* flush to display */\n- dpy_gfx_update(ts->con, 0, y_start,\n- ts->width, y - y_start);\n+ qemu_console_update(ts->con, 0, y_start, ts->width, y - y_start);\n }\n g_free(snap);\n return true;\n@@ -297,8 +295,7 @@ static bool tcx24_update_display(void *opaque)\n } else {\n if (y_start >= 0) {\n /* flush to display */\n- dpy_gfx_update(ts->con, 0, y_start,\n- ts->width, y - y_start);\n+ qemu_console_update(ts->con, 0, y_start, ts->width, y - y_start);\n y_start = -1;\n }\n }\n@@ -309,8 +306,7 @@ static bool tcx24_update_display(void *opaque)\n }\n if (y_start >= 0) {\n /* flush to display */\n- dpy_gfx_update(ts->con, 0, y_start,\n- ts->width, y - y_start);\n+ qemu_console_update(ts->con, 0, y_start, ts->width, y - y_start);\n }\n g_free(snap);\n return true;\n@@ -864,9 +860,9 @@ static void tcx_realize(DeviceState *dev, Error **errp)\n sysbus_init_irq(sbd, &s->irq);\n \n if (s->depth == 8) {\n- s->con = graphic_console_init(dev, 0, &tcx_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &tcx_ops, s);\n } else {\n- s->con = graphic_console_init(dev, 0, &tcx24_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &tcx24_ops, s);\n }\n s->thcmisc = 0;\n \ndiff --git a/hw/display/vga-isa.c b/hw/display/vga-isa.c\nindex 5f55c884a1b..2cccb0ef12e 100644\n--- a/hw/display/vga-isa.c\n+++ b/hw/display/vga-isa.c\n@@ -79,7 +79,7 @@ static void vga_isa_realizefn(DeviceState *dev, Error **errp)\n 0x000a0000,\n vga_io_memory, 1);\n memory_region_set_coalescing(vga_io_memory);\n- s->con = graphic_console_init(dev, 0, s->hw_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, s->hw_ops, s);\n \n memory_region_add_subregion(isa_address_space(isadev),\n VBE_DISPI_LFB_PHYSICAL_ADDRESS,\ndiff --git a/hw/display/vga-mmio.c b/hw/display/vga-mmio.c\nindex 1a9608d865f..3cd64951c09 100644\n--- a/hw/display/vga-mmio.c\n+++ b/hw/display/vga-mmio.c\n@@ -108,7 +108,7 @@ static void vga_mmio_realizefn(DeviceState *dev, Error **errp)\n }\n \n sysbus_init_mmio(sbd, &s->vga.vram);\n- s->vga.con = graphic_console_init(dev, 0, s->vga.hw_ops, &s->vga);\n+ s->vga.con = qemu_graphic_console_create(dev, 0, s->vga.hw_ops, &s->vga);\n }\n \n static const Property vga_mmio_properties[] = {\ndiff --git a/hw/display/vga-pci.c b/hw/display/vga-pci.c\nindex 4e68dd57a17..d089847bdae 100644\n--- a/hw/display/vga-pci.c\n+++ b/hw/display/vga-pci.c\n@@ -247,7 +247,7 @@ static void pci_std_vga_realize(PCIDevice *dev, Error **errp)\n vga_init(s, OBJECT(dev), pci_address_space(dev), pci_address_space_io(dev),\n true);\n \n- s->con = graphic_console_init(DEVICE(dev), 0, s->hw_ops, s);\n+ s->con = qemu_graphic_console_create(DEVICE(dev), 0, s->hw_ops, s);\n \n /* XXX: VGA_RAM_SIZE must be a power of two */\n pci_register_bar(&d->dev, 0, PCI_BASE_ADDRESS_MEM_PREFETCH, &s->vram);\n@@ -282,7 +282,7 @@ static void pci_secondary_vga_realize(PCIDevice *dev, Error **errp)\n if (!vga_common_init(s, OBJECT(dev), errp)) {\n return;\n }\n- s->con = graphic_console_init(DEVICE(dev), 0, s->hw_ops, s);\n+ s->con = qemu_graphic_console_create(DEVICE(dev), 0, s->hw_ops, s);\n \n /* mmio bar */\n memory_region_init_io(&d->mmio, OBJECT(dev), &unassigned_io_ops, NULL,\n@@ -306,7 +306,7 @@ static void pci_secondary_vga_exit(PCIDevice *dev)\n PCIVGAState *d = PCI_VGA(dev);\n VGACommonState *s = &d->vga;\n \n- graphic_console_close(s->con);\n+ qemu_graphic_console_close(s->con);\n memory_region_del_subregion(&d->mmio, &d->mrs[0]);\n memory_region_del_subregion(&d->mmio, &d->mrs[1]);\n if (d->flags & (1 << PCI_VGA_FLAG_ENABLE_QEXT)) {\ndiff --git a/hw/display/vga.c b/hw/display/vga.c\nindex 409c02272a3..3f456b96608 100644\n--- a/hw/display/vga.c\n+++ b/hw/display/vga.c\n@@ -1246,7 +1246,7 @@ static void vga_draw_text(VGACommonState *s, int full_update)\n s->last_scr_height = height * cheight;\n qemu_console_resize(s->con, s->last_scr_width, s->last_scr_height);\n surface = qemu_console_surface(s->con);\n- dpy_text_resize(s->con, width, height);\n+ qemu_console_text_resize(s->con, width, height);\n s->last_depth = 0;\n s->last_width = width;\n s->last_height = height;\n@@ -1365,8 +1365,8 @@ static void vga_draw_text(VGACommonState *s, int full_update)\n ch_attr_ptr++;\n }\n if (cx_max != -1) {\n- dpy_gfx_update(s->con, cx_min * cw, cy * cheight,\n- (cx_max - cx_min + 1) * cw, cheight);\n+ qemu_console_update(s->con, cx_min * cw, cy * cheight,\n+ (cx_max - cx_min + 1) * cw, cheight);\n }\n dest += linesize * cheight;\n line1 = line + cheight;\n@@ -1610,7 +1610,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)\n */\n format = qemu_default_pixman_format(depth, !byteswap);\n if (format) {\n- allocate_surface = !dpy_gfx_check_format(s->con, format)\n+ allocate_surface = !qemu_console_check_format(s->con, format)\n || s->force_shadow || force_shadow;\n } else {\n allocate_surface = true;\n@@ -1647,7 +1647,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)\n surface = qemu_create_displaysurface_from(disp_width,\n height, format, s->params.line_offset,\n s->vram_ptr + (s->params.start_addr * 4));\n- dpy_gfx_replace_surface(s->con, surface);\n+ qemu_console_set_surface(s->con, surface);\n } else {\n qemu_console_resize(s->con, disp_width, height);\n surface = qemu_console_surface(s->con);\n@@ -1720,8 +1720,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)\n } else {\n if (y_start >= 0) {\n /* flush to display */\n- dpy_gfx_update(s->con, 0, y_start,\n- disp_width, y - y_start);\n+ qemu_console_update(s->con, 0, y_start, disp_width, y - y_start);\n y_start = -1;\n }\n }\n@@ -1745,8 +1744,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)\n }\n if (y_start >= 0) {\n /* flush to display */\n- dpy_gfx_update(s->con, 0, y_start,\n- disp_width, y - y_start);\n+ qemu_console_update(s->con, 0, y_start, disp_width, y - y_start);\n }\n g_free(snap);\n memset(s->invalidated_y_table, 0, sizeof(s->invalidated_y_table));\n@@ -1767,7 +1765,7 @@ static void vga_draw_blank(VGACommonState *s, int full_update)\n /* unshare buffer, otherwise the blanking corrupts vga vram */\n surface = qemu_create_displaysurface(s->last_scr_width,\n s->last_scr_height);\n- dpy_gfx_replace_surface(s->con, surface);\n+ qemu_console_set_surface(s->con, surface);\n }\n \n w = s->last_scr_width * surface_bytes_per_pixel(surface);\n@@ -1776,7 +1774,7 @@ static void vga_draw_blank(VGACommonState *s, int full_update)\n memset(d, 0, w);\n d += surface_stride(surface);\n }\n- dpy_gfx_update_full(s->con);\n+ qemu_console_update_full(s->con);\n }\n \n #define GMODE_TEXT 0\n@@ -1967,7 +1965,7 @@ static void vga_update_text(void *opaque, uint32_t *chardata)\n s->last_scr_width = width * cw;\n s->last_scr_height = height * cheight;\n qemu_console_resize(s->con, s->last_scr_width, s->last_scr_height);\n- dpy_text_resize(s->con, width, height);\n+ qemu_console_text_resize(s->con, width, height);\n s->last_depth = 0;\n s->last_width = width;\n s->last_height = height;\n@@ -1992,11 +1990,11 @@ static void vga_update_text(void *opaque, uint32_t *chardata)\n s->cr[VGA_CRTC_CURSOR_END] != s->cursor_end || full_update) {\n cursor_visible = !(s->cr[VGA_CRTC_CURSOR_START] & 0x20);\n if (cursor_visible && cursor_offset < size && cursor_offset >= 0)\n- dpy_text_cursor(s->con,\n- TEXTMODE_X(cursor_offset),\n- TEXTMODE_Y(cursor_offset));\n+ qemu_console_text_set_cursor(s->con,\n+ TEXTMODE_X(cursor_offset),\n+ TEXTMODE_Y(cursor_offset));\n else\n- dpy_text_cursor(s->con, -1, -1);\n+ qemu_console_text_set_cursor(s->con, -1, -1);\n s->cursor_offset = cursor_offset;\n s->cursor_start = s->cr[VGA_CRTC_CURSOR_START];\n s->cursor_end = s->cr[VGA_CRTC_CURSOR_END];\n@@ -2009,7 +2007,7 @@ static void vga_update_text(void *opaque, uint32_t *chardata)\n for (i = 0; i < size; src ++, dst ++, i ++)\n *dst = VMEM2CHTYPE(le32_to_cpu(*src));\n \n- dpy_text_update(s->con, 0, 0, width, height);\n+ qemu_console_text_update(s->con, 0, 0, width, height);\n } else {\n c_max = 0;\n \n@@ -2032,7 +2030,7 @@ static void vga_update_text(void *opaque, uint32_t *chardata)\n \n if (c_min <= c_max) {\n i = TEXTMODE_Y(c_min);\n- dpy_text_update(s->con, 0, i, width, TEXTMODE_Y(c_max) - i + 1);\n+ qemu_console_text_update(s->con, 0, i, width, TEXTMODE_Y(c_max) - i + 1);\n }\n }\n \n@@ -2057,8 +2055,8 @@ static void vga_update_text(void *opaque, uint32_t *chardata)\n /* Display a message */\n s->last_width = 60;\n s->last_height = height = 3;\n- dpy_text_cursor(s->con, -1, -1);\n- dpy_text_resize(s->con, s->last_width, height);\n+ qemu_console_text_set_cursor(s->con, -1, -1);\n+ qemu_console_text_resize(s->con, s->last_width, height);\n \n for (dst = chardata, i = 0; i < s->last_width * height; i ++)\n *dst++ = ' ';\n@@ -2070,7 +2068,7 @@ static void vga_update_text(void *opaque, uint32_t *chardata)\n *dst++ = ATTR2CHTYPE(msg_buffer[i], QEMU_COLOR_BLUE,\n QEMU_COLOR_BLACK, 1);\n \n- dpy_text_update(s->con, 0, 0, s->last_width, height);\n+ qemu_console_text_update(s->con, 0, 0, s->last_width, height);\n }\n \n static uint64_t vga_mem_read(void *opaque, hwaddr addr,\ndiff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c\nindex 3f6fb7a8033..6e5e6540a46 100644\n--- a/hw/display/vhost-user-gpu.c\n+++ b/hw/display/vhost-user-gpu.c\n@@ -142,11 +142,11 @@ vhost_user_gpu_handle_cursor(VhostUserGPU *g, VhostUserGpuMsg *msg)\n memcpy(s->current_cursor->data, up->data,\n 64 * 64 * sizeof(uint32_t));\n \n- dpy_cursor_define(s->con, s->current_cursor);\n+ qemu_console_set_cursor(s->con, s->current_cursor);\n }\n \n- dpy_mouse_set(s->con, pos->x, pos->y,\n- msg->request != VHOST_USER_GPU_CURSOR_POS_HIDE);\n+ qemu_console_set_mouse(s->con, pos->x, pos->y,\n+ msg->request != VHOST_USER_GPU_CURSOR_POS_HIDE);\n }\n \n static void\n@@ -238,7 +238,7 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)\n con = s->con;\n \n if (m->width == 0) {\n- dpy_gfx_replace_surface(con, NULL);\n+ qemu_console_set_surface(con, NULL);\n } else {\n s->ds = qemu_create_displaysurface(m->width, m->height);\n /* replace surface on next update */\n@@ -269,12 +269,12 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)\n \n if (dmabuf) {\n qemu_dmabuf_close(dmabuf);\n- dpy_gl_release_dmabuf(con, dmabuf);\n+ qemu_console_gl_release_dmabuf(con, dmabuf);\n g_clear_pointer(&dmabuf, qemu_dmabuf_free);\n }\n \n if (fd == -1) {\n- dpy_gl_scanout_disable(con);\n+ qemu_console_gl_scanout_disable(con);\n g->dmabuf[m->scanout_id] = NULL;\n break;\n }\n@@ -291,7 +291,7 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)\n &fd, 1, false, m->fd_flags &\n VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP);\n \n- dpy_gl_scanout_dmabuf(con, dmabuf);\n+ qemu_console_gl_scanout_dmabuf(con, dmabuf);\n g->dmabuf[m->scanout_id] = dmabuf;\n break;\n }\n@@ -306,13 +306,13 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)\n }\n \n con = g->parent_obj.scanout[m->scanout_id].con;\n- if (!console_has_gl(con)) {\n+ if (!qemu_console_has_gl(con)) {\n error_report(\"console doesn't support GL!\");\n vhost_user_gpu_unblock(g);\n break;\n }\n g->backend_blocked = true;\n- dpy_gl_update(con, m->x, m->y, m->width, m->height);\n+ qemu_console_gl_update(con, m->x, m->y, m->width, m->height);\n break;\n }\n #ifdef CONFIG_PIXMAN\n@@ -337,9 +337,9 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)\n \n pixman_image_unref(image);\n if (qemu_console_surface(con) != s->ds) {\n- dpy_gfx_replace_surface(con, s->ds);\n+ qemu_console_set_surface(con, s->ds);\n } else {\n- dpy_gfx_update(con, m->x, m->y, m->width, m->height);\n+ qemu_console_update(con, m->x, m->y, m->width, m->height);\n }\n break;\n }\ndiff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c\nindex bdc24492850..a68b1848295 100644\n--- a/hw/display/virtio-gpu-base.c\n+++ b/hw/display/virtio-gpu-base.c\n@@ -253,7 +253,7 @@ virtio_gpu_base_device_realize(DeviceState *qdev,\n g->hw_ops = &virtio_gpu_ops;\n for (i = 0; i < g->conf.max_outputs; i++) {\n g->scanout[i].con =\n- graphic_console_init(DEVICE(g), i, &virtio_gpu_ops, g);\n+ qemu_graphic_console_create(DEVICE(g), i, &virtio_gpu_ops, g);\n }\n \n return true;\ndiff --git a/hw/display/virtio-gpu-rutabaga.c b/hw/display/virtio-gpu-rutabaga.c\nindex ebb6c783fb0..6ff12639012 100644\n--- a/hw/display/virtio-gpu-rutabaga.c\n+++ b/hw/display/virtio-gpu-rutabaga.c\n@@ -282,7 +282,7 @@ rutabaga_cmd_resource_flush(VirtIOGPU *g, struct virtio_gpu_ctrl_command *cmd)\n rf.resource_id, &transfer,\n &transfer_iovec);\n CHECK(!result, cmd);\n- dpy_gfx_update_full(scanout->con);\n+ qemu_console_update_full(scanout->con);\n }\n \n static void\n@@ -306,8 +306,8 @@ rutabaga_cmd_set_scanout(VirtIOGPU *g, struct virtio_gpu_ctrl_command *cmd)\n scanout = &vb->scanout[ss.scanout_id];\n \n if (ss.resource_id == 0) {\n- dpy_gfx_replace_surface(scanout->con, NULL);\n- dpy_gl_scanout_disable(scanout->con);\n+ qemu_console_set_surface(scanout->con, NULL);\n+ qemu_console_gl_scanout_disable(scanout->con);\n return;\n }\n \n@@ -331,8 +331,8 @@ rutabaga_cmd_set_scanout(VirtIOGPU *g, struct virtio_gpu_ctrl_command *cmd)\n \n /* realloc the surface ptr */\n scanout->ds = qemu_create_displaysurface_pixman(res->image);\n- dpy_gfx_replace_surface(scanout->con, NULL);\n- dpy_gfx_replace_surface(scanout->con, scanout->ds);\n+ qemu_console_set_surface(scanout->con, NULL);\n+ qemu_console_set_surface(scanout->con, scanout->ds);\n res->scanout_bitmask = ss.scanout_id;\n }\n \ndiff --git a/hw/display/virtio-gpu-udmabuf.c b/hw/display/virtio-gpu-udmabuf.c\nindex 74b6a7766af..d5ac1cfca0e 100644\n--- a/hw/display/virtio-gpu-udmabuf.c\n+++ b/hw/display/virtio-gpu-udmabuf.c\n@@ -156,7 +156,7 @@ static void virtio_gpu_free_dmabuf(VirtIOGPU *g, VGPUDMABuf *dmabuf)\n struct virtio_gpu_scanout *scanout;\n \n scanout = &g->parent_obj.scanout[dmabuf->scanout_id];\n- dpy_gl_release_dmabuf(scanout->con, dmabuf->buf);\n+ qemu_console_gl_release_dmabuf(scanout->con, dmabuf->buf);\n g_clear_pointer(&dmabuf->buf, qemu_dmabuf_free);\n QTAILQ_REMOVE(&g->dmabuf.bufs, dmabuf, next);\n g_free(dmabuf);\n@@ -232,7 +232,7 @@ int virtio_gpu_update_dmabuf(VirtIOGPU *g,\n height = qemu_dmabuf_get_height(new_primary->buf);\n g->dmabuf.primary[scanout_id] = new_primary;\n qemu_console_resize(scanout->con, width, height);\n- dpy_gl_scanout_dmabuf(scanout->con, new_primary->buf);\n+ qemu_console_gl_scanout_dmabuf(scanout->con, new_primary->buf);\n \n if (old_primary) {\n virtio_gpu_free_dmabuf(g, old_primary);\ndiff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c\nindex b7a2d160ddd..f8437616779 100644\n--- a/hw/display/virtio-gpu-virgl.c\n+++ b/hw/display/virtio-gpu-virgl.c\n@@ -521,7 +521,7 @@ static void virtio_gpu_rect_update(VirtIOGPU *g, int idx, int x, int y,\n return;\n }\n \n- dpy_gl_update(g->parent_obj.scanout[idx].con, x, y, width, height);\n+ qemu_console_gl_update(g->parent_obj.scanout[idx].con, x, y, width, height);\n }\n \n static void virgl_cmd_resource_flush(VirtIOGPU *g,\n@@ -584,16 +584,15 @@ static void virgl_cmd_set_scanout(VirtIOGPU *g,\n qemu_console_resize(g->parent_obj.scanout[ss.scanout_id].con,\n ss.r.width, ss.r.height);\n virgl_renderer_force_ctx_0();\n- dpy_gl_scanout_texture(\n+ qemu_console_gl_scanout_texture(\n g->parent_obj.scanout[ss.scanout_id].con, info.tex_id,\n info.flags & VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP,\n info.width, info.height,\n ss.r.x, ss.r.y, ss.r.width, ss.r.height,\n d3d_tex2d);\n } else {\n- dpy_gfx_replace_surface(\n- g->parent_obj.scanout[ss.scanout_id].con, NULL);\n- dpy_gl_scanout_disable(g->parent_obj.scanout[ss.scanout_id].con);\n+ qemu_console_set_surface(g->parent_obj.scanout[ss.scanout_id].con, NULL);\n+ qemu_console_gl_scanout_disable(g->parent_obj.scanout[ss.scanout_id].con);\n }\n g->parent_obj.scanout[ss.scanout_id].resource_id = ss.resource_id;\n }\n@@ -1315,7 +1314,7 @@ virgl_create_context(void *opaque, int scanout_idx,\n qparams.major_ver = params->major_ver;\n qparams.minor_ver = params->minor_ver;\n \n- ctx = dpy_gl_ctx_create(g->parent_obj.scanout[scanout_idx].con, &qparams);\n+ ctx = qemu_console_gl_ctx_create(g->parent_obj.scanout[scanout_idx].con, &qparams);\n return (virgl_renderer_gl_context)ctx;\n }\n \n@@ -1324,7 +1323,7 @@ static void virgl_destroy_context(void *opaque, virgl_renderer_gl_context ctx)\n VirtIOGPU *g = opaque;\n QEMUGLContext qctx = (QEMUGLContext)ctx;\n \n- dpy_gl_ctx_destroy(g->parent_obj.scanout[0].con, qctx);\n+ qemu_console_gl_ctx_destroy(g->parent_obj.scanout[0].con, qctx);\n }\n \n static int virgl_make_context_current(void *opaque, int scanout_idx,\n@@ -1333,8 +1332,7 @@ static int virgl_make_context_current(void *opaque, int scanout_idx,\n VirtIOGPU *g = opaque;\n QEMUGLContext qctx = (QEMUGLContext)ctx;\n \n- return dpy_gl_ctx_make_current(g->parent_obj.scanout[scanout_idx].con,\n- qctx);\n+ return qemu_console_gl_ctx_make_current(g->parent_obj.scanout[scanout_idx].con, qctx);\n }\n \n static struct virgl_renderer_callbacks virtio_gpu_3d_cbs = {\n@@ -1399,8 +1397,8 @@ void virtio_gpu_virgl_reset_scanout(VirtIOGPU *g)\n int i;\n \n for (i = 0; i < g->parent_obj.conf.max_outputs; i++) {\n- dpy_gfx_replace_surface(g->parent_obj.scanout[i].con, NULL);\n- dpy_gl_scanout_disable(g->parent_obj.scanout[i].con);\n+ qemu_console_set_surface(g->parent_obj.scanout[i].con, NULL);\n+ qemu_console_gl_scanout_disable(g->parent_obj.scanout[i].con);\n }\n }\n \ndiff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c\nindex b998ce8324d..aad45e6fc0f 100644\n--- a/hw/display/virtio-gpu.c\n+++ b/hw/display/virtio-gpu.c\n@@ -103,14 +103,14 @@ static void update_cursor(VirtIOGPU *g, struct virtio_gpu_update_cursor *cursor)\n if (cursor->resource_id > 0) {\n vgc->update_cursor_data(g, s, cursor->resource_id);\n }\n- dpy_cursor_define(s->con, s->current_cursor);\n+ qemu_console_set_cursor(s->con, s->current_cursor);\n \n s->cursor = *cursor;\n } else {\n s->cursor.pos.x = cursor->pos.x;\n s->cursor.pos.y = cursor->pos.y;\n }\n- dpy_mouse_set(s->con, cursor->pos.x, cursor->pos.y, cursor->resource_id);\n+ qemu_console_set_mouse(s->con, cursor->pos.x, cursor->pos.y, cursor->resource_id);\n }\n \n struct virtio_gpu_simple_resource *\n@@ -390,7 +390,7 @@ void virtio_gpu_disable_scanout(VirtIOGPU *g, int scanout_id)\n res->scanout_bitmask &= ~(1 << scanout_id);\n }\n \n- dpy_gfx_replace_surface(scanout->con, NULL);\n+ qemu_console_set_surface(scanout->con, NULL);\n scanout->resource_id = 0;\n scanout->ds = NULL;\n scanout->width = 0;\n@@ -531,8 +531,8 @@ static void virtio_gpu_resource_flush(VirtIOGPU *g,\n rf.r.y + rf.r.height >= scanout->y) {\n within_bounds = true;\n \n- if (console_has_gl(scanout->con)) {\n- dpy_gl_update(scanout->con, 0, 0, scanout->width,\n+ if (qemu_console_has_gl(scanout->con)) {\n+ qemu_console_gl_update(scanout->con, 0, 0, scanout->width,\n scanout->height);\n update_submitted = true;\n }\n@@ -582,8 +582,8 @@ static void virtio_gpu_resource_flush(VirtIOGPU *g,\n /* work out the area we need to update for each console */\n if (qemu_rect_intersect(&flush_rect, &rect, &rect)) {\n qemu_rect_translate(&rect, -scanout->x, -scanout->y);\n- dpy_gfx_update(g->parent_obj.scanout[i].con,\n- rect.x, rect.y, rect.width, rect.height);\n+ qemu_console_update(g->parent_obj.scanout[i].con,\n+ rect.x, rect.y, rect.width, rect.height);\n }\n }\n }\n@@ -649,7 +649,7 @@ static bool virtio_gpu_do_set_scanout(VirtIOGPU *g,\n g->parent_obj.enable = 1;\n \n if (res->blob) {\n- if (console_has_gl(scanout->con)) {\n+ if (qemu_console_has_gl(scanout->con)) {\n if (!virtio_gpu_update_dmabuf(g, scanout_id, res, fb, r)) {\n virtio_gpu_update_scanout(g, scanout_id, res, fb, r);\n } else {\n@@ -665,7 +665,7 @@ static bool virtio_gpu_do_set_scanout(VirtIOGPU *g,\n }\n \n /* create a surface for this scanout */\n- if ((res->blob && !console_has_gl(scanout->con)) ||\n+ if ((res->blob && !qemu_console_has_gl(scanout->con)) ||\n !scanout->ds ||\n surface_data(scanout->ds) != data + fb->offset ||\n scanout->width != r->width ||\n@@ -686,7 +686,7 @@ static bool virtio_gpu_do_set_scanout(VirtIOGPU *g,\n qemu_displaysurface_set_share_handle(scanout->ds, res->share_handle, fb->offset);\n \n pixman_image_unref(rect);\n- dpy_gfx_replace_surface(g->parent_obj.scanout[scanout_id].con,\n+ qemu_console_set_surface(g->parent_obj.scanout[scanout_id].con,\n scanout->ds);\n }\n \n@@ -1483,10 +1483,10 @@ static int virtio_gpu_post_load(void *opaque, int version_id)\n }\n scanout->ds = qemu_create_displaysurface_pixman(res->image);\n qemu_displaysurface_set_share_handle(scanout->ds, res->share_handle, 0);\n- dpy_gfx_replace_surface(scanout->con, scanout->ds);\n+ qemu_console_set_surface(scanout->con, scanout->ds);\n }\n \n- dpy_gfx_update_full(scanout->con);\n+ qemu_console_update_full(scanout->con);\n if (scanout->cursor.resource_id) {\n update_cursor(g, &scanout->cursor);\n }\n@@ -1602,7 +1602,7 @@ static void virtio_gpu_reset_bh(void *opaque)\n }\n \n for (i = 0; i < g->parent_obj.conf.max_outputs; i++) {\n- dpy_gfx_replace_surface(g->parent_obj.scanout[i].con, NULL);\n+ qemu_console_set_surface(g->parent_obj.scanout[i].con, NULL);\n }\n \n g->reset_finished = true;\ndiff --git a/hw/display/virtio-vga.c b/hw/display/virtio-vga.c\nindex efd4858f3d0..2ae649c91ae 100644\n--- a/hw/display/virtio-vga.c\n+++ b/hw/display/virtio-vga.c\n@@ -172,7 +172,7 @@ static void virtio_vga_base_realize(VirtIOPCIProxy *vpci_dev, Error **errp)\n vvga->vga_mrs, true, false);\n \n vga->con = g->scanout[0].con;\n- graphic_console_set_hwops(vga->con, &virtio_vga_base_ops, vvga);\n+ qemu_graphic_console_set_hwops(vga->con, &virtio_vga_base_ops, vvga);\n \n for (i = 0; i < g->conf.max_outputs; i++) {\n object_property_set_link(OBJECT(g->scanout[i].con), \"device\",\ndiff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c\nindex 39606d80be1..f8906776b16 100644\n--- a/hw/display/vmware_vga.c\n+++ b/hw/display/vmware_vga.c\n@@ -378,7 +378,7 @@ static inline void vmsvga_update_rect(struct vmsvga_state_s *s,\n for (line = h; line > 0; line--, src += bypl, dst += bypl) {\n memcpy(dst, src, width);\n }\n- dpy_gfx_update(s->vga.con, x, y, w, h);\n+ qemu_console_update(s->vga.con, x, y, w, h);\n }\n \n static inline void vmsvga_update_rect_flush(struct vmsvga_state_s *s)\n@@ -554,7 +554,7 @@ static inline void vmsvga_cursor_define(struct vmsvga_state_s *s,\n qc = cursor_builtin_left_ptr();\n }\n \n- dpy_cursor_define(s->vga.con, qc);\n+ qemu_console_set_cursor(s->vga.con, qc);\n cursor_unref(qc);\n }\n #endif\n@@ -1082,7 +1082,7 @@ static void vmsvga_value_write(void *opaque, uint32_t address, uint32_t value)\n s->cursor.on &= (value != SVGA_CURSOR_ON_HIDE);\n #ifdef HW_MOUSE_ACCEL\n if (value <= SVGA_CURSOR_ON_SHOW) {\n- dpy_mouse_set(s->vga.con, s->cursor.x, s->cursor.y, s->cursor.on);\n+ qemu_console_set_mouse(s->vga.con, s->cursor.x, s->cursor.y, s->cursor.on);\n }\n #endif\n break;\n@@ -1130,7 +1130,7 @@ static inline void vmsvga_check_size(struct vmsvga_state_s *s)\n surface = qemu_create_displaysurface_from(s->new_width, s->new_height,\n format, stride,\n s->vga.vram_ptr);\n- dpy_gfx_replace_surface(s->vga.con, surface);\n+ qemu_console_set_surface(s->vga.con, surface);\n s->invalidated = 1;\n }\n }\n@@ -1151,7 +1151,7 @@ static bool vmsvga_update_display(void *opaque)\n \n if (s->invalidated) {\n s->invalidated = 0;\n- dpy_gfx_update_full(s->vga.con);\n+ qemu_console_update_full(s->vga.con);\n }\n \n return true;\n@@ -1254,7 +1254,7 @@ static void vmsvga_init(DeviceState *dev, struct vmsvga_state_s *s,\n s->scratch_size = SVGA_SCRATCH_SIZE;\n s->scratch = g_malloc(s->scratch_size * 4);\n \n- s->vga.con = graphic_console_init(dev, 0, &vmsvga_ops, s);\n+ s->vga.con = qemu_graphic_console_create(dev, 0, &vmsvga_ops, s);\n \n s->fifo_size = SVGA_FIFO_SIZE;\n memory_region_init_ram(&s->fifo_ram, NULL, \"vmsvga.fifo\", s->fifo_size,\ndiff --git a/hw/display/xenfb.c b/hw/display/xenfb.c\nindex 2e431e27be6..8e9953bda43 100644\n--- a/hw/display/xenfb.c\n+++ b/hw/display/xenfb.c\n@@ -657,7 +657,7 @@ static void xenfb_guest_copy(struct XenFB *xenfb, int x, int y, int w, int h)\n xen_pv_printf(&xenfb->c.xendev, 0, \"%s: oops: convert %d -> %d bpp?\\n\",\n __func__, xenfb->depth, bpp);\n \n- dpy_gfx_update(xenfb->con, x, y, w, h);\n+ qemu_console_update(xenfb->con, x, y, w, h);\n }\n \n #ifdef XENFB_TYPE_REFRESH_PERIOD\n@@ -743,7 +743,7 @@ static bool xenfb_update(void *opaque)\n surface = qemu_create_displaysurface(xenfb->width, xenfb->height);\n break;\n }\n- dpy_gfx_replace_surface(xenfb->con, surface);\n+ qemu_console_set_surface(xenfb->con, surface);\n xen_pv_printf(&xenfb->c.xendev, 1,\n \"update: resizing: %dx%d @ %d bpp%s\\n\",\n xenfb->width, xenfb->height, xenfb->depth,\n@@ -903,7 +903,7 @@ static int fb_initialise(struct XenLegacyDevice *xendev)\n if (rc != 0)\n return rc;\n \n- fb->con = graphic_console_init(NULL, 0, &xenfb_ops, fb);\n+ fb->con = qemu_graphic_console_create(NULL, 0, &xenfb_ops, fb);\n \n if (xenstore_read_fe_int(xendev, \"feature-update\", &fb->feature_update) == -1)\n fb->feature_update = 0;\ndiff --git a/hw/display/xlnx_dp.c b/hw/display/xlnx_dp.c\nindex 50e6ef10984..2486d9e5825 100644\n--- a/hw/display/xlnx_dp.c\n+++ b/hw/display/xlnx_dp.c\n@@ -605,7 +605,7 @@ static void xlnx_dp_recreate_surface(XlnxDPState *s)\n \n if ((width != 0) && (height != 0)) {\n /*\n- * As dpy_gfx_replace_surface calls qemu_free_displaysurface on the\n+ * As qemu_console_replace_surface calls qemu_free_displaysurface on the\n * surface we need to be careful and don't free the surface associated\n * to the console or double free will happen.\n */\n@@ -631,10 +631,10 @@ static void xlnx_dp_recreate_surface(XlnxDPState *s)\n height,\n s->g_plane.format,\n 0, NULL);\n- dpy_gfx_replace_surface(s->console, s->bout_plane.surface);\n+ qemu_console_set_surface(s->console, s->bout_plane.surface);\n } else {\n s->bout_plane.surface = NULL;\n- dpy_gfx_replace_surface(s->console, s->g_plane.surface);\n+ qemu_console_set_surface(s->console, s->g_plane.surface);\n }\n \n xlnx_dpdma_set_host_data_location(s->dpdma, DP_GRAPHIC_DMA_CHANNEL,\n@@ -1287,7 +1287,7 @@ static bool xlnx_dp_update_display(void *opaque)\n /*\n * XXX: We might want to update only what changed.\n */\n- dpy_gfx_update_full(s->console);\n+ qemu_console_update_full(s->console);\n \n return true;\n }\n@@ -1387,7 +1387,7 @@ static void xlnx_dp_realize(DeviceState *dev, Error **errp)\n qdev_realize(DEVICE(s->edid), BUS(aux_get_i2c_bus(s->aux_bus)),\n &error_fatal);\n \n- s->console = graphic_console_init(dev, 0, &xlnx_dp_gfx_ops, s);\n+ s->console = qemu_graphic_console_create(dev, 0, &xlnx_dp_gfx_ops, s);\n surface = qemu_console_surface(s->console);\n xlnx_dpdma_set_host_data_location(s->dpdma, DP_GRAPHIC_DMA_CHANNEL,\n surface_data(surface));\ndiff --git a/hw/vfio/display.c b/hw/vfio/display.c\nindex 4a9a58036e3..8f91e83da88 100644\n--- a/hw/vfio/display.c\n+++ b/hw/vfio/display.c\n@@ -264,7 +264,7 @@ static void vfio_display_free_one_dmabuf(VFIODisplay *dpy, VFIODMABuf *dmabuf)\n QTAILQ_REMOVE(&dpy->dmabuf.bufs, dmabuf, next);\n \n qemu_dmabuf_close(dmabuf->buf);\n- dpy_gl_release_dmabuf(dpy->con, dmabuf->buf);\n+ qemu_console_gl_release_dmabuf(dpy->con, dmabuf->buf);\n g_clear_pointer(&dmabuf->buf, qemu_dmabuf_free);\n g_free(dmabuf);\n }\n@@ -307,7 +307,7 @@ static bool vfio_display_dmabuf_update(void *opaque)\n if (dpy->dmabuf.primary != primary) {\n dpy->dmabuf.primary = primary;\n qemu_console_resize(dpy->con, width, height);\n- dpy_gl_scanout_dmabuf(dpy->con, primary->buf);\n+ qemu_console_gl_scanout_dmabuf(dpy->con, primary->buf);\n free_bufs = true;\n }\n \n@@ -321,21 +321,21 @@ static bool vfio_display_dmabuf_update(void *opaque)\n if (cursor && (new_cursor || cursor->hot_updates)) {\n bool have_hot = (cursor->hot_x != 0xffffffff &&\n cursor->hot_y != 0xffffffff);\n- dpy_gl_cursor_dmabuf(dpy->con, cursor->buf, have_hot,\n- cursor->hot_x, cursor->hot_y);\n+ qemu_console_gl_cursor_dmabuf(dpy->con, cursor->buf, have_hot,\n+ cursor->hot_x, cursor->hot_y);\n cursor->hot_updates = 0;\n } else if (!cursor && new_cursor) {\n- dpy_gl_cursor_dmabuf(dpy->con, NULL, false, 0, 0);\n+ qemu_console_gl_cursor_dmabuf(dpy->con, NULL, false, 0, 0);\n }\n \n if (cursor && cursor->pos_updates) {\n- dpy_gl_cursor_position(dpy->con,\n+ qemu_console_gl_cursor_position(dpy->con,\n cursor->pos_x,\n cursor->pos_y);\n cursor->pos_updates = 0;\n }\n \n- dpy_gl_update(dpy->con, 0, 0, width, height);\n+ qemu_console_gl_update(dpy->con, 0, 0, width, height);\n \n if (free_bufs) {\n vfio_display_free_dmabufs(vdev);\n@@ -363,7 +363,7 @@ static bool vfio_display_dmabuf_init(VFIOPCIDevice *vdev, Error **errp)\n }\n \n vdev->dpy = g_new0(VFIODisplay, 1);\n- vdev->dpy->con = graphic_console_init(DEVICE(vdev), 0,\n+ vdev->dpy->con = qemu_graphic_console_create(DEVICE(vdev), 0,\n &vfio_display_dmabuf_ops,\n vdev);\n if (vdev->enable_ramfb) {\n@@ -396,9 +396,9 @@ void vfio_display_reset(VFIOPCIDevice *vdev)\n return;\n }\n \n- dpy_gl_scanout_disable(vdev->dpy->con);\n+ qemu_console_gl_scanout_disable(vdev->dpy->con);\n vfio_display_dmabuf_exit(vdev->dpy);\n- dpy_gfx_update_full(vdev->dpy->con);\n+ qemu_console_update_full(vdev->dpy->con);\n }\n \n static bool vfio_display_region_update(void *opaque)\n@@ -471,13 +471,13 @@ static bool vfio_display_region_update(void *opaque)\n dpy->region.surface = qemu_create_displaysurface_from\n (plane.width, plane.height, format,\n plane.stride, dpy->region.buffer.mmaps[0].mmap);\n- dpy_gfx_replace_surface(dpy->con, dpy->region.surface);\n+ qemu_console_set_surface(dpy->con, dpy->region.surface);\n }\n \n /* full screen update */\n- dpy_gfx_update(dpy->con, 0, 0,\n- surface_width(dpy->region.surface),\n- surface_height(dpy->region.surface));\n+ qemu_console_update(dpy->con, 0, 0,\n+ surface_width(dpy->region.surface),\n+ surface_height(dpy->region.surface));\n return true;\n \n err:\n@@ -493,7 +493,7 @@ static const GraphicHwOps vfio_display_region_ops = {\n static bool vfio_display_region_init(VFIOPCIDevice *vdev, Error **errp)\n {\n vdev->dpy = g_new0(VFIODisplay, 1);\n- vdev->dpy->con = graphic_console_init(DEVICE(vdev), 0,\n+ vdev->dpy->con = qemu_graphic_console_create(DEVICE(vdev), 0,\n &vfio_display_region_ops,\n vdev);\n if (vdev->enable_ramfb) {\n@@ -553,7 +553,7 @@ void vfio_display_finalize(VFIOPCIDevice *vdev)\n return;\n }\n \n- graphic_console_close(vdev->dpy->con);\n+ qemu_graphic_console_close(vdev->dpy->con);\n vfio_display_dmabuf_exit(vdev->dpy);\n vfio_display_region_exit(vdev->dpy);\n vfio_display_edid_exit(vdev->dpy);\ndiff --git a/ui/console-vc.c b/ui/console-vc.c\nindex 6e8f2552e41..ec7106b169a 100644\n--- a/ui/console-vc.c\n+++ b/ui/console-vc.c\n@@ -86,15 +86,15 @@ static void text_console_update(void *opaque, uint32_t *chardata)\n s->vt.cells[src].t_attrib.bgcol,\n s->vt.cells[src].t_attrib.bold);\n }\n- dpy_text_update(QEMU_CONSOLE(s), s->vt.text_x[0], s->vt.text_y[0],\n- s->vt.text_x[1] - s->vt.text_x[0], i - s->vt.text_y[0]);\n+ qemu_console_text_update(QEMU_CONSOLE(s), s->vt.text_x[0], s->vt.text_y[0],\n+ s->vt.text_x[1] - s->vt.text_x[0], i - s->vt.text_y[0]);\n s->vt.text_x[0] = s->vt.width;\n s->vt.text_y[0] = s->vt.height;\n s->vt.text_x[1] = 0;\n s->vt.text_y[1] = 0;\n }\n if (s->vt.cursor_invalidate) {\n- dpy_text_cursor(QEMU_CONSOLE(s), s->vt.x, s->vt.y);\n+ qemu_console_text_set_cursor(QEMU_CONSOLE(s), s->vt.x, s->vt.y);\n s->vt.cursor_invalidate = 0;\n }\n }\n@@ -182,14 +182,14 @@ static void vc_chr_set_echo(Chardev *chr, bool echo)\n \n void qemu_text_console_update_size(QemuTextConsole *c)\n {\n- dpy_text_resize(QEMU_CONSOLE(c), c->vt.width, c->vt.height);\n+ qemu_console_text_resize(QEMU_CONSOLE(c), c->vt.width, c->vt.height);\n }\n \n static void text_console_image_update(QemuVT100 *vt, int x, int y, int width, int height)\n {\n QemuTextConsole *console = container_of(vt, QemuTextConsole, vt);\n \n- dpy_gfx_update(QEMU_CONSOLE(console), x, y, width, height);\n+ qemu_console_update(QEMU_CONSOLE(console), x, y, width, height);\n }\n \n static void text_console_out_flush(QemuVT100 *vt)\n@@ -228,7 +228,7 @@ static bool vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)\n s = QEMU_TEXT_CONSOLE(object_new(TYPE_QEMU_FIXED_TEXT_CONSOLE));\n }\n \n- dpy_gfx_replace_surface(QEMU_CONSOLE(s), qemu_create_displaysurface(width, height));\n+ qemu_console_set_surface(QEMU_CONSOLE(s), qemu_create_displaysurface(width, height));\n vt100_init(&s->vt, QEMU_CONSOLE(s)->surface->image,\n text_console_image_update,\n text_console_out_flush);\ndiff --git a/ui/console.c b/ui/console.c\nindex 6e073cacca0..344bf308b0c 100644\n--- a/ui/console.c\n+++ b/ui/console.c\n@@ -129,26 +129,26 @@ static void gui_setup_refresh(DisplayState *ds)\n }\n }\n \n-void graphic_hw_update_done(QemuConsole *con)\n+void qemu_console_hw_update_done(QemuConsole *con)\n {\n if (con) {\n qemu_co_enter_all(&con->dump_queue, NULL);\n }\n }\n \n-void graphic_hw_update(QemuConsole *con)\n+void qemu_console_hw_update(QemuConsole *con)\n {\n if (!con) {\n return;\n }\n if (!con->hw_ops->gfx_update || con->hw_ops->gfx_update(con->hw)) {\n- graphic_hw_update_done(con);\n+ qemu_console_hw_update_done(con);\n }\n }\n \n-static void graphic_hw_update_bh(void *con)\n+static void console_hw_update_bh(void *con)\n {\n- graphic_hw_update(con);\n+ qemu_console_hw_update(con);\n }\n \n void qemu_console_co_wait_update(QemuConsole *con)\n@@ -156,18 +156,18 @@ void qemu_console_co_wait_update(QemuConsole *con)\n if (qemu_co_queue_empty(&con->dump_queue)) {\n /* Defer the update, it will restart the pending coroutines */\n aio_bh_schedule_oneshot(qemu_get_aio_context(),\n- graphic_hw_update_bh, con);\n+ console_hw_update_bh, con);\n }\n qemu_co_queue_wait(&con->dump_queue, NULL);\n \n }\n \n-static void graphic_hw_gl_unblock_timer(void *opaque)\n+static void console_hw_gl_unblock_timer(void *opaque)\n {\n warn_report(\"console: no gl-unblock within one second\");\n }\n \n-void graphic_hw_gl_block(QemuConsole *con, bool block)\n+void qemu_console_hw_gl_block(QemuConsole *con, bool block)\n {\n uint64_t timeout;\n assert(con != NULL);\n@@ -205,14 +205,14 @@ void qemu_console_set_window_id(QemuConsole *con, int window_id)\n con->window_id = window_id;\n }\n \n-void graphic_hw_invalidate(QemuConsole *con)\n+void qemu_console_hw_invalidate(QemuConsole *con)\n {\n if (con && con->hw_ops->invalidate) {\n con->hw_ops->invalidate(con->hw);\n }\n }\n \n-void graphic_hw_text_update(QemuConsole *con, uint32_t *chardata)\n+void qemu_console_hw_text_update(QemuConsole *con, uint32_t *chardata)\n {\n if (con && con->hw_ops->text_update) {\n con->hw_ops->text_update(con->hw, chardata);\n@@ -502,7 +502,7 @@ qemu_graphic_console_init(Object *obj)\n {\n }\n \n-bool console_has_gl(QemuConsole *con)\n+bool qemu_console_has_gl(QemuConsole *con)\n {\n return con->gl != NULL;\n }\n@@ -527,7 +527,7 @@ static bool console_compatible_with(QemuConsole *con,\n \n flags = con->hw_ops->get_flags ? con->hw_ops->get_flags(con->hw) : 0;\n \n- if (console_has_gl(con) &&\n+ if (qemu_console_has_gl(con) &&\n !con->gl->ops->dpy_gl_ctx_is_compatible_dcl(con->gl, dcl)) {\n error_setg(errp, \"Display %s is incompatible with the GL context\",\n dcl->ops->dpy_name);\n@@ -535,7 +535,7 @@ static bool console_compatible_with(QemuConsole *con,\n }\n \n if (flags & GRAPHIC_FLAGS_GL &&\n- !console_has_gl(con)) {\n+ !qemu_console_has_gl(con)) {\n error_setg(errp, \"The console requires a GL context.\");\n return false;\n \n@@ -670,8 +670,8 @@ void qemu_console_register_listener(QemuConsole *con,\n vt100_update_cursor();\n }\n \n-void update_displaychangelistener(DisplayChangeListener *dcl,\n- uint64_t interval)\n+void qemu_console_listener_set_refresh(DisplayChangeListener *dcl,\n+ uint64_t interval)\n {\n DisplayState *ds = dcl->ds;\n \n@@ -710,7 +710,7 @@ static void dpy_set_ui_info_timer(void *opaque)\n con->hw_ops->ui_info(con->hw, head, &con->ui_info);\n }\n \n-bool dpy_ui_info_supported(const QemuConsole *con)\n+bool qemu_console_ui_info_supported(const QemuConsole *con)\n {\n if (con == NULL) {\n return false;\n@@ -719,16 +719,16 @@ bool dpy_ui_info_supported(const QemuConsole *con)\n return con->hw_ops->ui_info != NULL;\n }\n \n-const QemuUIInfo *dpy_get_ui_info(const QemuConsole *con)\n+const QemuUIInfo *qemu_console_get_ui_info(const QemuConsole *con)\n {\n- assert(dpy_ui_info_supported(con));\n+ assert(qemu_console_ui_info_supported(con));\n \n return &con->ui_info;\n }\n \n-int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay)\n+int qemu_console_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay)\n {\n- if (!dpy_ui_info_supported(con)) {\n+ if (!qemu_console_ui_info_supported(con)) {\n return -1;\n }\n if (memcmp(&con->ui_info, info, sizeof(con->ui_info)) == 0) {\n@@ -747,7 +747,7 @@ int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay)\n return 0;\n }\n \n-void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h)\n+void qemu_console_update(QemuConsole *con, int x, int y, int w, int h)\n {\n DisplayState *s = con->ds;\n DisplayChangeListener *dcl;\n@@ -772,15 +772,15 @@ void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h)\n }\n }\n \n-void dpy_gfx_update_full(QemuConsole *con)\n+void qemu_console_update_full(QemuConsole *con)\n {\n int w = qemu_console_get_width(con, 0);\n int h = qemu_console_get_height(con, 0);\n \n- dpy_gfx_update(con, 0, 0, w, h);\n+ qemu_console_update(con, 0, 0, w, h);\n }\n \n-void dpy_gfx_replace_surface(QemuConsole *con,\n+void qemu_console_set_surface(QemuConsole *con,\n DisplaySurface *surface)\n {\n static const char placeholder_msg[] = \"Display output is not active.\";\n@@ -818,8 +818,8 @@ void dpy_gfx_replace_surface(QemuConsole *con,\n qemu_free_displaysurface(old_surface);\n }\n \n-bool dpy_gfx_check_format(QemuConsole *con,\n- pixman_format_code_t format)\n+bool qemu_console_check_format(QemuConsole *con,\n+ pixman_format_code_t format)\n {\n DisplayChangeListener *dcl;\n DisplayState *s = con->ds;\n@@ -854,7 +854,7 @@ static void dpy_refresh(DisplayState *s)\n }\n }\n \n-void dpy_text_cursor(QemuConsole *con, int x, int y)\n+void qemu_console_text_set_cursor(QemuConsole *con, int x, int y)\n {\n DisplayState *s = con->ds;\n DisplayChangeListener *dcl;\n@@ -869,7 +869,7 @@ void dpy_text_cursor(QemuConsole *con, int x, int y)\n }\n }\n \n-void dpy_text_update(QemuConsole *con, int x, int y, int w, int h)\n+void qemu_console_text_update(QemuConsole *con, int x, int y, int w, int h)\n {\n DisplayState *s = con->ds;\n DisplayChangeListener *dcl;\n@@ -884,7 +884,7 @@ void dpy_text_update(QemuConsole *con, int x, int y, int w, int h)\n }\n }\n \n-void dpy_text_resize(QemuConsole *con, int w, int h)\n+void qemu_console_text_resize(QemuConsole *con, int w, int h)\n {\n DisplayState *s = con->ds;\n DisplayChangeListener *dcl;\n@@ -899,7 +899,7 @@ void dpy_text_resize(QemuConsole *con, int w, int h)\n }\n }\n \n-void dpy_mouse_set(QemuConsole *c, int x, int y, bool on)\n+void qemu_console_set_mouse(QemuConsole *c, int x, int y, bool on)\n {\n QemuGraphicConsole *con = QEMU_GRAPHIC_CONSOLE(c);\n DisplayState *s = c->ds;\n@@ -918,7 +918,7 @@ void dpy_mouse_set(QemuConsole *c, int x, int y, bool on)\n }\n }\n \n-void dpy_cursor_define(QemuConsole *c, QEMUCursor *cursor)\n+void qemu_console_set_cursor(QemuConsole *c, QEMUCursor *cursor)\n {\n QemuGraphicConsole *con = QEMU_GRAPHIC_CONSOLE(c);\n DisplayState *s = c->ds;\n@@ -936,26 +936,26 @@ void dpy_cursor_define(QemuConsole *c, QEMUCursor *cursor)\n }\n }\n \n-QEMUGLContext dpy_gl_ctx_create(QemuConsole *con,\n- struct QEMUGLParams *qparams)\n+QEMUGLContext qemu_console_gl_ctx_create(QemuConsole *con,\n+ QEMUGLParams *qparams)\n {\n assert(con->gl);\n return con->gl->ops->dpy_gl_ctx_create(con->gl, qparams);\n }\n \n-void dpy_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx)\n+void qemu_console_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx)\n {\n assert(con->gl);\n con->gl->ops->dpy_gl_ctx_destroy(con->gl, ctx);\n }\n \n-int dpy_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx)\n+int qemu_console_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx)\n {\n assert(con->gl);\n return con->gl->ops->dpy_gl_ctx_make_current(con->gl, ctx);\n }\n \n-void dpy_gl_scanout_disable(QemuConsole *con)\n+void qemu_console_gl_scanout_disable(QemuConsole *con)\n {\n DisplayState *s = con->ds;\n DisplayChangeListener *dcl;\n@@ -973,14 +973,14 @@ void dpy_gl_scanout_disable(QemuConsole *con)\n }\n }\n \n-void dpy_gl_scanout_texture(QemuConsole *con,\n- uint32_t backing_id,\n- bool backing_y_0_top,\n- uint32_t backing_width,\n- uint32_t backing_height,\n- uint32_t x, uint32_t y,\n- uint32_t width, uint32_t height,\n- void *d3d_tex2d)\n+void qemu_console_gl_scanout_texture(QemuConsole *con,\n+ uint32_t backing_id,\n+ bool backing_y_0_top,\n+ uint32_t backing_width,\n+ uint32_t backing_height,\n+ uint32_t x, uint32_t y,\n+ uint32_t width, uint32_t height,\n+ void *d3d_tex2d)\n {\n DisplayState *s = con->ds;\n DisplayChangeListener *dcl;\n@@ -1004,8 +1004,8 @@ void dpy_gl_scanout_texture(QemuConsole *con,\n }\n }\n \n-void dpy_gl_scanout_dmabuf(QemuConsole *con,\n- QemuDmaBuf *dmabuf)\n+void qemu_console_gl_scanout_dmabuf(QemuConsole *con,\n+ QemuDmaBuf *dmabuf)\n {\n DisplayState *s = con->ds;\n DisplayChangeListener *dcl;\n@@ -1022,8 +1022,8 @@ void dpy_gl_scanout_dmabuf(QemuConsole *con,\n }\n }\n \n-void dpy_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,\n- bool have_hot, uint32_t hot_x, uint32_t hot_y)\n+void qemu_console_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,\n+ bool have_hot, uint32_t hot_x, uint32_t hot_y)\n {\n DisplayState *s = con->ds;\n DisplayChangeListener *dcl;\n@@ -1039,8 +1039,8 @@ void dpy_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,\n }\n }\n \n-void dpy_gl_cursor_position(QemuConsole *con,\n- uint32_t pos_x, uint32_t pos_y)\n+void qemu_console_gl_cursor_position(QemuConsole *con,\n+ uint32_t pos_x, uint32_t pos_y)\n {\n DisplayState *s = con->ds;\n DisplayChangeListener *dcl;\n@@ -1055,8 +1055,8 @@ void dpy_gl_cursor_position(QemuConsole *con,\n }\n }\n \n-void dpy_gl_release_dmabuf(QemuConsole *con,\n- QemuDmaBuf *dmabuf)\n+void qemu_console_gl_release_dmabuf(QemuConsole *con,\n+ QemuDmaBuf *dmabuf)\n {\n DisplayState *s = con->ds;\n DisplayChangeListener *dcl;\n@@ -1071,15 +1071,15 @@ void dpy_gl_release_dmabuf(QemuConsole *con,\n }\n }\n \n-void dpy_gl_update(QemuConsole *con,\n- uint32_t x, uint32_t y, uint32_t w, uint32_t h)\n+void qemu_console_gl_update(QemuConsole *con,\n+ uint32_t x, uint32_t y, uint32_t w, uint32_t h)\n {\n DisplayState *s = con->ds;\n DisplayChangeListener *dcl;\n \n assert(con->gl);\n \n- graphic_hw_gl_block(con, true);\n+ qemu_console_hw_gl_block(con, true);\n QLIST_FOREACH(dcl, &s->listeners, next) {\n if (con != dcl->con) {\n continue;\n@@ -1088,7 +1088,7 @@ void dpy_gl_update(QemuConsole *con,\n dcl->ops->dpy_gl_update(dcl, x, y, w, h);\n }\n }\n- graphic_hw_gl_block(con, false);\n+ qemu_console_hw_gl_block(con, false);\n }\n \n /***********************************************************/\n@@ -1125,17 +1125,17 @@ DisplayState *init_displaystate(void)\n return display_state;\n }\n \n-void graphic_console_set_hwops(QemuConsole *con,\n- const GraphicHwOps *hw_ops,\n- void *opaque)\n+void qemu_graphic_console_set_hwops(QemuConsole *con,\n+ const GraphicHwOps *hw_ops,\n+ void *opaque)\n {\n con->hw_ops = hw_ops;\n con->hw = opaque;\n }\n \n-QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,\n- const GraphicHwOps *hw_ops,\n- void *opaque)\n+QemuConsole *qemu_graphic_console_create(DeviceState *dev, uint32_t head,\n+ const GraphicHwOps *hw_ops,\n+ void *opaque)\n {\n static const char noinit[] =\n \"Guest has not initialized the display (yet).\";\n@@ -1154,16 +1154,16 @@ QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,\n s = (QemuConsole *)object_new(TYPE_QEMU_GRAPHIC_CONSOLE);\n }\n QEMU_GRAPHIC_CONSOLE(s)->head = head;\n- graphic_console_set_hwops(s, hw_ops, opaque);\n+ qemu_graphic_console_set_hwops(s, hw_ops, opaque);\n if (dev) {\n object_property_set_link(OBJECT(s), \"device\", OBJECT(dev),\n &error_abort);\n }\n \n surface = qemu_create_placeholder_surface(width, height, noinit);\n- dpy_gfx_replace_surface(s, surface);\n+ qemu_console_set_surface(s, surface);\n s->gl_unblock_timer = timer_new_ms(QEMU_CLOCK_REALTIME,\n- graphic_hw_gl_unblock_timer, s);\n+ console_hw_gl_unblock_timer, s);\n return s;\n }\n \n@@ -1171,7 +1171,7 @@ static const GraphicHwOps unused_ops = {\n /* no callbacks */\n };\n \n-void graphic_console_close(QemuConsole *con)\n+void qemu_graphic_console_close(QemuConsole *con)\n {\n static const char unplugged[] =\n \"Guest display has been unplugged\";\n@@ -1181,13 +1181,13 @@ void graphic_console_close(QemuConsole *con)\n \n trace_console_gfx_close(con->index);\n object_property_set_link(OBJECT(con), \"device\", NULL, &error_abort);\n- graphic_console_set_hwops(con, &unused_ops, NULL);\n+ qemu_graphic_console_set_hwops(con, &unused_ops, NULL);\n \n if (con->gl) {\n- dpy_gl_scanout_disable(con);\n+ qemu_console_gl_scanout_disable(con);\n }\n surface = qemu_create_placeholder_surface(width, height, unplugged);\n- dpy_gfx_replace_surface(con, surface);\n+ qemu_console_set_surface(con, surface);\n }\n \n QemuConsole *qemu_console_lookup_default(void)\n@@ -1373,7 +1373,7 @@ void qemu_console_resize(QemuConsole *s, int width, int height)\n }\n \n surface = qemu_create_displaysurface(width, height);\n- dpy_gfx_replace_surface(s, surface);\n+ qemu_console_set_surface(s, surface);\n }\n \n DisplaySurface *qemu_console_surface(QemuConsole *console)\ndiff --git a/ui/curses.c b/ui/curses.c\nindex 4e2a0b25955..f8d4542768b 100644\n--- a/ui/curses.c\n+++ b/ui/curses.c\n@@ -1,8 +1,8 @@\n /*\n * QEMU curses/ncurses display driver\n- * \n+ *\n * Copyright (c) 2005 Andrzej Zaborowski <balrog@zabor.org>\n- * \n+ *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n@@ -275,11 +275,11 @@ static void curses_refresh(DisplayChangeListener *dcl)\n clear();\n refresh();\n curses_calc_pad();\n- graphic_hw_invalidate(dcl->con);\n+ qemu_console_hw_invalidate(dcl->con);\n invalidate = 0;\n }\n \n- graphic_hw_text_update(dcl->con, screen);\n+ qemu_console_hw_text_update(dcl->con, screen);\n \n while (1) {\n /* while there are any pending key strokes to process */\ndiff --git a/ui/dbus-console.c b/ui/dbus-console.c\nindex 249760d82aa..88f58e88efb 100644\n--- a/ui/dbus-console.c\n+++ b/ui/dbus-console.c\n@@ -200,7 +200,7 @@ dbus_console_set_ui_info(DBusDisplayConsole *ddc,\n .height = arg_height,\n };\n \n- if (!dpy_ui_info_supported(ddc->dcl.con)) {\n+ if (!qemu_console_ui_info_supported(ddc->dcl.con)) {\n g_dbus_method_invocation_return_error(invocation,\n DBUS_DISPLAY_ERROR,\n DBUS_DISPLAY_ERROR_UNSUPPORTED,\n@@ -208,7 +208,7 @@ dbus_console_set_ui_info(DBusDisplayConsole *ddc,\n return DBUS_METHOD_INVOCATION_HANDLED;\n }\n \n- dpy_set_ui_info(ddc->dcl.con, &info, false);\n+ qemu_console_set_ui_info(ddc->dcl.con, &info, false);\n qemu_dbus_display1_console_complete_set_uiinfo(ddc->iface, invocation);\n return DBUS_METHOD_INVOCATION_HANDLED;\n }\ndiff --git a/ui/dbus-listener.c b/ui/dbus-listener.c\nindex fe58e3ef24d..40287d1c687 100644\n--- a/ui/dbus-listener.c\n+++ b/ui/dbus-listener.c\n@@ -241,7 +241,7 @@ static void dbus_update_gl_cb(GObject *source_object,\n }\n #endif\n \n- graphic_hw_gl_block(ddl->dcl.con, false);\n+ qemu_console_hw_gl_block(ddl->dcl.con, false);\n g_object_unref(ddl);\n }\n #endif\n@@ -257,7 +257,7 @@ static void dbus_call_update_gl(DisplayChangeListener *dcl,\n \n glFlush();\n #ifdef CONFIG_GBM\n- graphic_hw_gl_block(ddl->dcl.con, true);\n+ qemu_console_hw_gl_block(ddl->dcl.con, true);\n qemu_dbus_display1_listener_call_update_dmabuf(ddl->proxy,\n x, y, w, h,\n G_DBUS_CALL_FLAGS_NONE,\n@@ -276,7 +276,7 @@ static void dbus_call_update_gl(DisplayChangeListener *dcl,\n Error *err = NULL;\n assert(ddl->d3d_texture);\n \n- graphic_hw_gl_block(ddl->dcl.con, true);\n+ qemu_console_hw_gl_block(ddl->dcl.con, true);\n if (!d3d_texture2d_release0(ddl->d3d_texture, &err)) {\n error_report_err(err);\n return;\n@@ -711,7 +711,7 @@ static void dbus_gl_refresh(DisplayChangeListener *dcl)\n {\n DBusDisplayListener *ddl = container_of(dcl, DBusDisplayListener, dcl);\n \n- graphic_hw_update(dcl->con);\n+ qemu_console_hw_update(dcl->con);\n \n if (!ddl->ds || qemu_console_is_gl_blocked(ddl->dcl.con)) {\n return;\n@@ -740,7 +740,7 @@ static void dbus_gl_refresh(DisplayChangeListener *dcl)\n \n static void dbus_refresh(DisplayChangeListener *dcl)\n {\n- graphic_hw_update(dcl->con);\n+ qemu_console_hw_update(dcl->con);\n }\n \n #ifdef CONFIG_OPENGL\ndiff --git a/ui/egl-headless.c b/ui/egl-headless.c\nindex 4f046c975a9..878bfebb40c 100644\n--- a/ui/egl-headless.c\n+++ b/ui/egl-headless.c\n@@ -23,7 +23,7 @@ typedef struct egl_dpy {\n \n static void egl_refresh(DisplayChangeListener *dcl)\n {\n- graphic_hw_update(dcl->con);\n+ qemu_console_hw_update(dcl->con);\n }\n \n static void egl_gfx_update(DisplayChangeListener *dcl,\n@@ -161,7 +161,7 @@ static void egl_scanout_flush(DisplayChangeListener *dcl,\n }\n \n egl_fb_read(edpy->ds, &edpy->blit_fb);\n- dpy_gfx_update(edpy->dcl.con, x, y, w, h);\n+ qemu_console_update(edpy->dcl.con, x, y, w, h);\n }\n \n static const DisplayChangeListenerOps egl_ops = {\ndiff --git a/ui/gtk-egl.c b/ui/gtk-egl.c\nindex fa8fe8970c1..7c5c9b2428c 100644\n--- a/ui/gtk-egl.c\n+++ b/ui/gtk-egl.c\n@@ -108,7 +108,7 @@ void gd_egl_draw(VirtualConsole *vc)\n qemu_set_fd_handler(fence_fd, gd_hw_gl_flushed, NULL, vc);\n return;\n }\n- graphic_hw_gl_block(vc->gfx.dcl.con, false);\n+ qemu_console_hw_gl_block(vc->gfx.dcl.con, false);\n }\n #endif\n } else {\n@@ -176,7 +176,7 @@ void gd_egl_refresh(DisplayChangeListener *dcl)\n return;\n }\n \n- graphic_hw_update(dcl->con);\n+ qemu_console_hw_update(dcl->con);\n \n if (vc->gfx.glupdates) {\n vc->gfx.glupdates = 0;\n@@ -405,7 +405,7 @@ void gd_egl_flush(DisplayChangeListener *dcl,\n \n if (vc->gfx.guest_fb.dmabuf &&\n !qemu_dmabuf_get_draw_submitted(vc->gfx.guest_fb.dmabuf)) {\n- graphic_hw_gl_block(vc->gfx.dcl.con, true);\n+ qemu_console_hw_gl_block(vc->gfx.dcl.con, true);\n qemu_dmabuf_set_draw_submitted(vc->gfx.guest_fb.dmabuf, true);\n gtk_egl_set_scanout_mode(vc, true);\n gtk_widget_queue_draw_area(area, x, y, w, h);\ndiff --git a/ui/gtk-gl-area.c b/ui/gtk-gl-area.c\nindex ce49000d3f1..23806b9d01b 100644\n--- a/ui/gtk-gl-area.c\n+++ b/ui/gtk-gl-area.c\n@@ -131,7 +131,7 @@ void gd_gl_area_draw(VirtualConsole *vc)\n qemu_set_fd_handler(fence_fd, gd_hw_gl_flushed, NULL, vc);\n return;\n }\n- graphic_hw_gl_block(vc->gfx.dcl.con, false);\n+ qemu_console_hw_gl_block(vc->gfx.dcl.con, false);\n }\n #endif\n } else {\n@@ -195,7 +195,7 @@ void gd_gl_area_refresh(DisplayChangeListener *dcl)\n }\n }\n \n- graphic_hw_update(dcl->con);\n+ qemu_console_hw_update(dcl->con);\n \n if (vc->gfx.glupdates) {\n vc->gfx.glupdates = 0;\n@@ -347,7 +347,7 @@ void gd_gl_area_scanout_flush(DisplayChangeListener *dcl,\n \n if (vc->gfx.guest_fb.dmabuf &&\n !qemu_dmabuf_get_draw_submitted(vc->gfx.guest_fb.dmabuf)) {\n- graphic_hw_gl_block(vc->gfx.dcl.con, true);\n+ qemu_console_hw_gl_block(vc->gfx.dcl.con, true);\n qemu_dmabuf_set_draw_submitted(vc->gfx.guest_fb.dmabuf, true);\n gtk_gl_area_set_scanout_mode(vc, true);\n }\ndiff --git a/ui/gtk.c b/ui/gtk.c\nindex 3aaa44ff3e2..bcb67db7ee7 100644\n--- a/ui/gtk.c\n+++ b/ui/gtk.c\n@@ -436,7 +436,7 @@ static void gd_update(DisplayChangeListener *dcl,\n \n static void gd_refresh(DisplayChangeListener *dcl)\n {\n- graphic_hw_update(dcl->con);\n+ qemu_console_hw_update(dcl->con);\n }\n \n static GdkDevice *gd_get_pointer(GdkDisplay *dpy)\n@@ -602,7 +602,7 @@ void gd_hw_gl_flushed(void *vcon)\n qemu_set_fd_handler(fence_fd, NULL, NULL, NULL);\n close(fence_fd);\n qemu_dmabuf_set_fence_fd(dmabuf, -1);\n- graphic_hw_gl_block(vc->gfx.dcl.con, false);\n+ qemu_console_hw_gl_block(vc->gfx.dcl.con, false);\n }\n }\n \n@@ -729,27 +729,27 @@ static void gd_set_ui_refresh_rate(VirtualConsole *vc, int refresh_rate)\n {\n QemuUIInfo info;\n \n- if (!dpy_ui_info_supported(vc->gfx.dcl.con)) {\n+ if (!qemu_console_ui_info_supported(vc->gfx.dcl.con)) {\n return;\n }\n \n- info = *dpy_get_ui_info(vc->gfx.dcl.con);\n+ info = *qemu_console_get_ui_info(vc->gfx.dcl.con);\n info.refresh_rate = refresh_rate;\n- dpy_set_ui_info(vc->gfx.dcl.con, &info, true);\n+ qemu_console_set_ui_info(vc->gfx.dcl.con, &info, true);\n }\n \n static void gd_set_ui_size(VirtualConsole *vc, gint width, gint height)\n {\n QemuUIInfo info;\n \n- if (!dpy_ui_info_supported(vc->gfx.dcl.con)) {\n+ if (!qemu_console_ui_info_supported(vc->gfx.dcl.con)) {\n return;\n }\n \n- info = *dpy_get_ui_info(vc->gfx.dcl.con);\n+ info = *qemu_console_get_ui_info(vc->gfx.dcl.con);\n info.width = width;\n info.height = height;\n- dpy_set_ui_info(vc->gfx.dcl.con, &info, true);\n+ qemu_console_set_ui_info(vc->gfx.dcl.con, &info, true);\n }\n \n #if defined(CONFIG_OPENGL)\n@@ -2333,7 +2333,7 @@ static GSList *gd_vc_gfx_init(GtkDisplayState *s, VirtualConsole *vc,\n gd_connect_vc_gfx_signals(vc);\n group = gd_vc_menu_init(s, vc, idx, group, view_menu);\n \n- if (dpy_ui_info_supported(vc->gfx.dcl.con)) {\n+ if (qemu_console_ui_info_supported(vc->gfx.dcl.con)) {\n zoom_to_fit = true;\n }\n if (s->opts->u.gtk.has_zoom_to_fit) {\ndiff --git a/ui/sdl2-2d.c b/ui/sdl2-2d.c\nindex 73052383c2e..68a3aff7151 100644\n--- a/ui/sdl2-2d.c\n+++ b/ui/sdl2-2d.c\n@@ -129,7 +129,7 @@ void sdl2_2d_refresh(DisplayChangeListener *dcl)\n struct sdl2_console *scon = container_of(dcl, struct sdl2_console, dcl);\n \n assert(!scon->opengl);\n- graphic_hw_update(dcl->con);\n+ qemu_console_hw_update(dcl->con);\n sdl2_poll_events(scon);\n }\n \ndiff --git a/ui/sdl2-gl.c b/ui/sdl2-gl.c\nindex bb066cdd885..1547ad2f6f8 100644\n--- a/ui/sdl2-gl.c\n+++ b/ui/sdl2-gl.c\n@@ -115,7 +115,7 @@ void sdl2_gl_refresh(DisplayChangeListener *dcl)\n \n assert(scon->opengl);\n \n- graphic_hw_update(dcl->con);\n+ qemu_console_hw_update(dcl->con);\n if (scon->updates && scon->real_window) {\n scon->updates = 0;\n sdl2_gl_render_surface(scon);\ndiff --git a/ui/sdl2.c b/ui/sdl2.c\nindex 4f8b05fbd85..0f93a2fec84 100644\n--- a/ui/sdl2.c\n+++ b/ui/sdl2.c\n@@ -604,7 +604,7 @@ static void handle_windowevent(SDL_Event *ev)\n .width = ev->window.data1,\n .height = ev->window.data2,\n };\n- dpy_set_ui_info(scon->dcl.con, &info, true);\n+ qemu_console_set_ui_info(scon->dcl.con, &info, true);\n }\n sdl2_redraw(scon);\n break;\n@@ -632,10 +632,10 @@ static void handle_windowevent(SDL_Event *ev)\n }\n break;\n case SDL_WINDOWEVENT_RESTORED:\n- update_displaychangelistener(&scon->dcl, GUI_REFRESH_INTERVAL_DEFAULT);\n+ qemu_console_listener_set_refresh(&scon->dcl, GUI_REFRESH_INTERVAL_DEFAULT);\n break;\n case SDL_WINDOWEVENT_MINIMIZED:\n- update_displaychangelistener(&scon->dcl, 500);\n+ qemu_console_listener_set_refresh(&scon->dcl, 500);\n break;\n case SDL_WINDOWEVENT_CLOSE:\n if (qemu_console_is_graphic(scon->dcl.con)) {\ndiff --git a/ui/spice-display.c b/ui/spice-display.c\nindex 56d8140fad8..e3716127203 100644\n--- a/ui/spice-display.c\n+++ b/ui/spice-display.c\n@@ -468,7 +468,7 @@ void qemu_spice_cursor_refresh_bh(void *opaque)\n assert(ssd->dcl.con);\n cursor_ref(c);\n qemu_mutex_unlock(&ssd->lock);\n- dpy_cursor_define(ssd->dcl.con, c);\n+ qemu_console_set_cursor(ssd->dcl.con, c);\n qemu_mutex_lock(&ssd->lock);\n cursor_unref(c);\n }\n@@ -481,7 +481,7 @@ void qemu_spice_cursor_refresh_bh(void *opaque)\n ssd->mouse_x = -1;\n ssd->mouse_y = -1;\n qemu_mutex_unlock(&ssd->lock);\n- dpy_mouse_set(ssd->dcl.con, x, y, true);\n+ qemu_console_set_mouse(ssd->dcl.con, x, y, true);\n } else {\n qemu_mutex_unlock(&ssd->lock);\n }\n@@ -489,7 +489,7 @@ void qemu_spice_cursor_refresh_bh(void *opaque)\n \n void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd)\n {\n- graphic_hw_update(ssd->dcl.con);\n+ qemu_console_hw_update(ssd->dcl.con);\n \n WITH_QEMU_LOCK_GUARD(&ssd->lock) {\n if (QTAILQ_EMPTY(&ssd->updates) && ssd->ds) {\n@@ -668,7 +668,7 @@ static int interface_client_monitors_config(QXLInstance *sin,\n QemuUIInfo info;\n int head;\n \n- if (!dpy_ui_info_supported(ssd->dcl.con)) {\n+ if (!qemu_console_ui_info_supported(ssd->dcl.con)) {\n return 0; /* == not supported by guest */\n }\n \n@@ -676,7 +676,7 @@ static int interface_client_monitors_config(QXLInstance *sin,\n return 1;\n }\n \n- info = *dpy_get_ui_info(ssd->dcl.con);\n+ info = *qemu_console_get_ui_info(ssd->dcl.con);\n \n head = qemu_console_get_index(ssd->dcl.con);\n if (mc->num_of_monitors > head) {\n@@ -690,7 +690,7 @@ static int interface_client_monitors_config(QXLInstance *sin,\n }\n \n trace_qemu_spice_ui_info(ssd->qxl.id, info.width, info.height);\n- dpy_set_ui_info(ssd->dcl.con, &info, false);\n+ qemu_console_set_ui_info(ssd->dcl.con, &info, false);\n return 1;\n }\n \n@@ -817,7 +817,7 @@ static void qemu_spice_gl_block(SimpleSpiceDisplay *ssd, bool block)\n } else {\n timer_del(ssd->gl_unblock_timer);\n }\n- graphic_hw_gl_block(ssd->dcl.con, block);\n+ qemu_console_hw_gl_block(ssd->dcl.con, block);\n }\n \n static void qemu_spice_gl_unblock_bh(void *opaque)\n@@ -861,7 +861,7 @@ static void spice_gl_refresh(DisplayChangeListener *dcl)\n return;\n }\n \n- graphic_hw_update(dcl->con);\n+ qemu_console_hw_update(dcl->con);\n if (ssd->gl_updates && ssd->have_surface) {\n qemu_spice_gl_block(ssd, true);\n glFlush();\ndiff --git a/ui/vnc.c b/ui/vnc.c\nindex 21698835084..e1fba53ee57 100644\n--- a/ui/vnc.c\n+++ b/ui/vnc.c\n@@ -2324,8 +2324,8 @@ static void set_pixel_format(VncState *vs, int bits_per_pixel,\n \n set_pixel_conversion(vs);\n \n- graphic_hw_invalidate(vs->vd->dcl.con);\n- graphic_hw_update(vs->vd->dcl.con);\n+ qemu_console_hw_invalidate(vs->vd->dcl.con);\n+ qemu_console_hw_update(vs->vd->dcl.con);\n }\n \n static void pixel_format_message (VncState *vs) {\n@@ -2383,7 +2383,7 @@ static int protocol_client_msg(VncState *vs, uint8_t *data, size_t len)\n VncDisplay *vd = vs->vd;\n \n if (data[0] > 3) {\n- update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);\n+ qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);\n }\n \n switch (data[0]) {\n@@ -2637,9 +2637,9 @@ static int protocol_client_msg(VncState *vs, uint8_t *data, size_t len)\n h = read_u16(data, 4);\n \n trace_vnc_msg_client_set_desktop_size(vs, vs->ioc, w, h, screens);\n- if (dpy_ui_info_supported(vs->vd->dcl.con)) {\n+ if (qemu_console_ui_info_supported(vs->vd->dcl.con)) {\n QemuUIInfo info = { .width = w, .height = h };\n- dpy_set_ui_info(vs->vd->dcl.con, &info, false);\n+ qemu_console_set_ui_info(vs->vd->dcl.con, &info, false);\n vnc_desktop_resize_ext(vs, 4 /* Request forwarded */);\n } else {\n vnc_desktop_resize_ext(vs, 3 /* Invalid screen layout */);\n@@ -3241,14 +3241,14 @@ static void vnc_refresh(DisplayChangeListener *dcl)\n int has_dirty, rects = 0;\n \n if (QTAILQ_EMPTY(&vd->clients)) {\n- update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_MAX);\n+ qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_MAX);\n return;\n }\n \n- graphic_hw_update(vd->dcl.con);\n+ qemu_console_hw_update(vd->dcl.con);\n \n if (vnc_trylock_display(vd)) {\n- update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);\n+ qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);\n return;\n }\n \n@@ -3322,7 +3322,7 @@ static void vnc_connect(VncDisplay *vd, QIOChannelSocket *sioc,\n sioc, websocket, vs->auth, vs->subauth);\n \n VNC_DEBUG(\"New client on socket %p\\n\", vs->sioc);\n- update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);\n+ qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);\n qio_channel_set_blocking(vs->ioc, false, &error_abort);\n g_clear_handle_id(&vs->ioc_tag, g_source_remove);\n if (websocket) {\n@@ -3362,7 +3362,7 @@ static void vnc_connect(VncDisplay *vd, QIOChannelSocket *sioc,\n vnc_update_server_surface(vd);\n }\n \n- graphic_hw_update(vd->dcl.con);\n+ qemu_console_hw_update(vd->dcl.con);\n \n if (!vs->websocket) {\n vnc_start_protocol(vs);\n@@ -3418,7 +3418,7 @@ static void vmstate_change_handler(void *opaque, bool running, RunState state)\n if (state != RUN_STATE_RUNNING) {\n return;\n }\n- update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);\n+ qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);\n }\n \n static bool vnc_display_open(VncDisplay *vd, Error **errp);\ndiff --git a/hw/display/apple-gfx.m b/hw/display/apple-gfx.m\nindex 77d80fb7cef..be0061b9db2 100644\n--- a/hw/display/apple-gfx.m\n+++ b/hw/display/apple-gfx.m\n@@ -317,8 +317,8 @@ static void apple_gfx_render_frame_completed_bh(void *opaque)\n copy_mtl_texture_to_surface_mem(s->texture, surface_data(s->surface));\n if (s->gfx_update_requested) {\n s->gfx_update_requested = false;\n- dpy_gfx_update_full(s->con);\n- graphic_hw_update_done(s->con);\n+ qemu_console_update_full(s->con);\n+ qemu_console_hw_update_done(s->con);\n s->new_frame_ready = false;\n } else {\n s->new_frame_ready = true;\n@@ -337,7 +337,7 @@ static bool apple_gfx_fb_update_display(void *opaque)\n \n assert(bql_locked());\n if (s->new_frame_ready) {\n- dpy_gfx_update_full(s->con);\n+ qemu_console_update_full(s->con);\n s->new_frame_ready = false;\n } else if (s->pending_frames > 0) {\n s->gfx_update_requested = true;\n@@ -380,14 +380,14 @@ static void set_mode(AppleGFXState *s, uint32_t width, uint32_t height)\n (s->texture.storageMode == MTLStorageModeManaged);\n }\n \n- dpy_gfx_replace_surface(s->con, s->surface);\n+ qemu_console_set_surface(s->con, s->surface);\n }\n \n static void update_cursor(AppleGFXState *s)\n {\n assert(bql_locked());\n- dpy_mouse_set(s->con, s->pgdisp.cursorPosition.x,\n- s->pgdisp.cursorPosition.y, qatomic_read(&s->cursor_show));\n+ qemu_console_set_mouse(s->con, s->pgdisp.cursorPosition.x,\n+ s->pgdisp.cursorPosition.y, qatomic_read(&s->cursor_show));\n }\n \n static void update_cursor_bh(void *opaque)\n@@ -443,7 +443,7 @@ static void set_cursor_glyph(void *opaque)\n }\n px_data += padding_bytes_per_row;\n }\n- dpy_cursor_define(s->con, s->cursor);\n+ qemu_console_set_cursor(s->con, s->cursor);\n update_cursor(s);\n }\n [glyph release];\n@@ -792,7 +792,7 @@ bool apple_gfx_common_realize(AppleGFXState *s, DeviceState *dev,\n apple_gfx_create_display_mode_array(display_modes, num_display_modes);\n [mode_array release];\n \n- s->con = graphic_console_init(dev, 0, &apple_gfx_fb_ops, s);\n+ s->con = qemu_graphic_console_create(dev, 0, &apple_gfx_fb_ops, s);\n return true;\n }\n \ndiff --git a/ui/cocoa.m b/ui/cocoa.m\nindex aaf82421589..98394cdc507 100644\n--- a/ui/cocoa.m\n+++ b/ui/cocoa.m\n@@ -421,7 +421,7 @@ - (void) selectConsoleLocked:(unsigned int)index\n return;\n }\n \n- unregister_displaychangelistener(&dcl);\n+ qemu_console_unregister_listener(&dcl);\n qkbd_state_switch_console(kbd, con);\n qemu_console_register_listener(con, &dcl, &dcl_ops);\n [self notifyMouseModeChange];\n@@ -669,8 +669,8 @@ - (void) updateUIInfoLocked\n CVTime period = CVDisplayLinkGetNominalOutputVideoRefreshPeriod(displayLink);\n CVDisplayLinkRelease(displayLink);\n if (!(period.flags & kCVTimeIsIndefinite)) {\n- update_displaychangelistener(&dcl,\n- 1000 * period.timeValue / period.timeScale);\n+ qemu_console_listener_set_refresh(&dcl,\n+ 1000 * period.timeValue / period.timeScale);\n info.refresh_rate = (int64_t)1000 * period.timeScale / period.timeValue;\n }\n }\n@@ -688,7 +688,7 @@ - (void) updateUIInfoLocked\n info.width = frameSize.width * [[self window] backingScaleFactor];\n info.height = frameSize.height * [[self window] backingScaleFactor];\n \n- dpy_set_ui_info(dcl.con, &info, TRUE);\n+ qemu_console_set_ui_info(dcl.con, &info, TRUE);\n }\n \n #pragma clang diagnostic pop\n@@ -2056,7 +2056,7 @@ static void cocoa_refresh(DisplayChangeListener *dcl)\n NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];\n \n COCOA_DEBUG(\"qemu_cocoa: cocoa_refresh\\n\");\n- graphic_hw_update(dcl->con);\n+ qemu_console_hw_update(dcl->con);\n \n if (cbchangecount != [[NSPasteboard generalPasteboard] changeCount]) {\n qemu_clipboard_info_unref(cbinfo);\n", "prefixes": [ "v2", "60/67" ] }