diff mbox series

[09/67] ui/console: get the DisplayState from new_console()

Message ID 20230830093843.3531473-10-marcandre.lureau@redhat.com
State New
Headers show
Series Make pixman an optional dependency | expand

Commit Message

Marc-André Lureau Aug. 30, 2023, 9:37 a.m. UTC
From: Marc-André Lureau <marcandre.lureau@redhat.com>

There is no obvious reason to defer text console initialization. We can
simply take the global display state in new_console().

This simplify somewhat the code to allow moving the VC to a separate unit.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 ui/console.c | 26 ++++++++------------------
 1 file changed, 8 insertions(+), 18 deletions(-)

Comments

BALATON Zoltan Aug. 30, 2023, 12:39 p.m. UTC | #1
On Wed, 30 Aug 2023, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> There is no obvious reason to defer text console initialization. We can
> simply take the global display state in new_console().
>
> This simplify somewhat the code to allow moving the VC to a separate unit.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> ui/console.c | 26 ++++++++------------------
> 1 file changed, 8 insertions(+), 18 deletions(-)
>
> diff --git a/ui/console.c b/ui/console.c
> index fc1836782d..ba79c735b7 100644
> --- a/ui/console.c
> +++ b/ui/console.c
> @@ -143,7 +143,7 @@ static QTAILQ_HEAD(, QemuConsole) consoles =
> static bool cursor_visible_phase;
> static QEMUTimer *cursor_timer;
>
> -static void text_console_do_init(Chardev *chr, DisplayState *ds);
> +static void text_console_do_init(Chardev *chr);
> static void dpy_refresh(DisplayState *s);
> static DisplayState *get_alloc_displaystate(void);
> static void text_console_update_cursor_timer(void);
> @@ -1249,9 +1249,10 @@ static void text_console_update(void *opaque, console_ch_t *chardata)
>     }
> }
>
> -static QemuConsole *new_console(DisplayState *ds, console_type_t console_type,
> +static QemuConsole *new_console(console_type_t console_type,
>                                 uint32_t head)

It should be possible to remove the new line and fit it in one line now 
too.

Regards,
BALATON Zoltan
Daniel P. Berrangé Sept. 1, 2023, 2:10 p.m. UTC | #2
On Wed, Aug 30, 2023 at 01:37:43PM +0400, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> There is no obvious reason to defer text console initialization. We can
> simply take the global display state in new_console().
> 
> This simplify somewhat the code to allow moving the VC to a separate unit.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  ui/console.c | 26 ++++++++------------------
>  1 file changed, 8 insertions(+), 18 deletions(-)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


With regards,
Daniel
diff mbox series

Patch

diff --git a/ui/console.c b/ui/console.c
index fc1836782d..ba79c735b7 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -143,7 +143,7 @@  static QTAILQ_HEAD(, QemuConsole) consoles =
 static bool cursor_visible_phase;
 static QEMUTimer *cursor_timer;
 
-static void text_console_do_init(Chardev *chr, DisplayState *ds);
+static void text_console_do_init(Chardev *chr);
 static void dpy_refresh(DisplayState *s);
 static DisplayState *get_alloc_displaystate(void);
 static void text_console_update_cursor_timer(void);
@@ -1249,9 +1249,10 @@  static void text_console_update(void *opaque, console_ch_t *chardata)
     }
 }
 
-static QemuConsole *new_console(DisplayState *ds, console_type_t console_type,
+static QemuConsole *new_console(console_type_t console_type,
                                 uint32_t head)
 {
+    DisplayState *ds = get_alloc_displaystate();
     Object *obj;
     QemuConsole *s;
     int i;
@@ -2049,13 +2050,7 @@  DisplayState *init_displaystate(void)
     gchar *name;
     QemuConsole *con;
 
-    get_alloc_displaystate();
     QTAILQ_FOREACH(con, &consoles, next) {
-        if (con->console_type != GRAPHIC_CONSOLE &&
-            con->ds == NULL) {
-            text_console_do_init(con->chr, display_state);
-        }
-
         /* Hook up into the qom tree here (not in new_console()), once
          * all QemuConsoles are created and the order / numbering
          * doesn't change any more */
@@ -2085,10 +2080,8 @@  QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
     int width = 640;
     int height = 480;
     QemuConsole *s;
-    DisplayState *ds;
     DisplaySurface *surface;
 
-    ds = get_alloc_displaystate();
     s = qemu_console_lookup_unused();
     if (s) {
         trace_console_gfx_reuse(s->index);
@@ -2096,7 +2089,7 @@  QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
         height = qemu_console_get_height(s, 0);
     } else {
         trace_console_gfx_new();
-        s = new_console(ds, GRAPHIC_CONSOLE, head);
+        s = new_console(GRAPHIC_CONSOLE, head);
         s->ui_timer = timer_new_ms(QEMU_CLOCK_REALTIME,
                                    dpy_set_ui_info_timer, s);
     }
@@ -2405,7 +2398,7 @@  static const GraphicHwOps text_console_ops = {
     .text_update = text_console_update,
 };
 
-static void text_console_do_init(Chardev *chr, DisplayState *ds)
+static void text_console_do_init(Chardev *chr)
 {
     VCChardev *drv = VC_CHARDEV(chr);
     QemuConsole *s = drv->console;
@@ -2413,7 +2406,6 @@  static void text_console_do_init(Chardev *chr, DisplayState *ds)
     int g_height = 24 * FONT_HEIGHT;
 
     fifo8_create(&s->out_fifo, 16);
-    s->ds = ds;
 
     s->y_displayed = 0;
     s->y_base = 0;
@@ -2482,9 +2474,9 @@  static void vc_chr_open(Chardev *chr,
 
     trace_console_txt_new(width, height);
     if (width == 0 || height == 0) {
-        s = new_console(NULL, TEXT_CONSOLE, 0);
+        s = new_console(TEXT_CONSOLE, 0);
     } else {
-        s = new_console(NULL, TEXT_CONSOLE_FIXED_SIZE, 0);
+        s = new_console(TEXT_CONSOLE_FIXED_SIZE, 0);
         s->scanout.kind = SCANOUT_SURFACE;
         s->surface = qemu_create_displaysurface(width, height);
     }
@@ -2497,9 +2489,7 @@  static void vc_chr_open(Chardev *chr,
     s->chr = chr;
     drv->console = s;
 
-    if (display_state) {
-        text_console_do_init(chr, display_state);
-    }
+    text_console_do_init(chr);
 
     /* console/chardev init sometimes completes elsewhere in a 2nd
      * stage, so defer OPENED events until they are fully initialized