[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 30/52] ui/vc: fold text_console_do_init() in vc_chr_open()
From: |
marcandre . lureau |
Subject: |
[PULL 30/52] ui/vc: fold text_console_do_init() in vc_chr_open() |
Date: |
Mon, 4 Sep 2023 15:52:27 +0400 |
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20230830093843.3531473-31-marcandre.lureau@redhat.com>
---
ui/console.c | 80 ++++++++++++++++++++--------------------------------
1 file changed, 31 insertions(+), 49 deletions(-)
diff --git a/ui/console.c b/ui/console.c
index 9d884ba02f..22505d093f 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -187,7 +187,6 @@ static QTAILQ_HEAD(, QemuConsole) consoles =
static bool cursor_visible_phase;
static QEMUTimer *cursor_timer;
-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);
@@ -2534,49 +2533,6 @@ static const GraphicHwOps text_console_ops = {
.text_update = text_console_update,
};
-static void text_console_do_init(Chardev *chr)
-{
- VCChardev *drv = VC_CHARDEV(chr);
- QemuTextConsole *s = drv->console;
- int g_width = 80 * FONT_WIDTH;
- int g_height = 24 * FONT_HEIGHT;
-
- fifo8_create(&s->out_fifo, 16);
-
- s->y_displayed = 0;
- s->y_base = 0;
- s->total_height = DEFAULT_BACKSCROLL;
- s->x = 0;
- s->y = 0;
- if (QEMU_CONSOLE(s)->scanout.kind != SCANOUT_SURFACE) {
- if (active_console && active_console->scanout.kind == SCANOUT_SURFACE)
{
- g_width = qemu_console_get_width(active_console, g_width);
- g_height = qemu_console_get_height(active_console, g_height);
- }
- QEMU_CONSOLE(s)->surface = qemu_create_displaysurface(g_width,
g_height);
- QEMU_CONSOLE(s)->scanout.kind = SCANOUT_SURFACE;
- }
-
- QEMU_CONSOLE(s)->hw_ops = &text_console_ops;
- QEMU_CONSOLE(s)->hw = s;
-
- /* set current text attributes to default */
- drv->t_attrib = TEXT_ATTRIBUTES_DEFAULT;
- text_console_resize(s);
-
- if (chr->label) {
- char *msg;
-
- drv->t_attrib.bgcol = QEMU_COLOR_BLUE;
- msg = g_strdup_printf("%s console\r\n", chr->label);
- qemu_chr_write(chr, (uint8_t *)msg, strlen(msg), true);
- g_free(msg);
- drv->t_attrib = TEXT_ATTRIBUTES_DEFAULT;
- }
-
- qemu_chr_be_event(chr, CHR_EVENT_OPENED);
-}
-
static void vc_chr_open(Chardev *chr,
ChardevBackend *backend,
bool *be_opened,
@@ -2587,6 +2543,8 @@ static void vc_chr_open(Chardev *chr,
QemuTextConsole *s;
unsigned width = 0;
unsigned height = 0;
+ int g_width = 80 * FONT_WIDTH;
+ int g_height = 24 * FONT_HEIGHT;
if (vc->has_width) {
width = vc->width;
@@ -2612,12 +2570,36 @@ static void vc_chr_open(Chardev *chr,
s->chr = chr;
drv->console = s;
- text_console_do_init(chr);
+ fifo8_create(&s->out_fifo, 16);
- /* console/chardev init sometimes completes elsewhere in a 2nd
- * stage, so defer OPENED events until they are fully initialized
- */
- *be_opened = false;
+ s->total_height = DEFAULT_BACKSCROLL;
+ if (QEMU_CONSOLE(s)->scanout.kind != SCANOUT_SURFACE) {
+ if (active_console && active_console->scanout.kind == SCANOUT_SURFACE)
{
+ g_width = qemu_console_get_width(active_console, g_width);
+ g_height = qemu_console_get_height(active_console, g_height);
+ }
+ QEMU_CONSOLE(s)->surface = qemu_create_displaysurface(g_width,
g_height);
+ QEMU_CONSOLE(s)->scanout.kind = SCANOUT_SURFACE;
+ }
+
+ QEMU_CONSOLE(s)->hw_ops = &text_console_ops;
+ QEMU_CONSOLE(s)->hw = s;
+
+ /* set current text attributes to default */
+ drv->t_attrib = TEXT_ATTRIBUTES_DEFAULT;
+ text_console_resize(s);
+
+ if (chr->label) {
+ char *msg;
+
+ drv->t_attrib.bgcol = QEMU_COLOR_BLUE;
+ msg = g_strdup_printf("%s console\r\n", chr->label);
+ qemu_chr_write(chr, (uint8_t *)msg, strlen(msg), true);
+ g_free(msg);
+ drv->t_attrib = TEXT_ATTRIBUTES_DEFAULT;
+ }
+
+ *be_opened = true;
}
void qemu_console_resize(QemuConsole *s, int width, int height)
--
2.41.0
- [PULL 19/52] ui/console: introduce different console objects, (continued)
- [PULL 19/52] ui/console: introduce different console objects, marcandre . lureau, 2023/09/04
- [PULL 21/52] ui/console: register the console from qemu_console_init(), marcandre . lureau, 2023/09/04
- [PULL 23/52] ui/console: specialize console_lookup_unused(), marcandre . lureau, 2023/09/04
- [PULL 26/52] ui/vc: move cursor_timer initialization to QemuTextConsole class, marcandre . lureau, 2023/09/04
- [PULL 27/52] ui/console: free more QemuConsole resources, marcandre . lureau, 2023/09/04
- [PULL 24/52] ui/console: update the head from unused QemuConsole, marcandre . lureau, 2023/09/04
- [PULL 22/52] ui/console: remove new_console(), marcandre . lureau, 2023/09/04
- [PULL 28/52] ui/vc: move text fields to QemuTextConsole, marcandre . lureau, 2023/09/04
- [PULL 25/52] ui/console: allocate ui_timer in QemuConsole, marcandre . lureau, 2023/09/04
- [PULL 29/52] ui/console: move graphic fields to QemuGraphicConsole, marcandre . lureau, 2023/09/04
- [PULL 30/52] ui/vc: fold text_console_do_init() in vc_chr_open(),
marcandre . lureau <=
- [PULL 31/52] ui/vc: move some text console initialization to qom handlers, marcandre . lureau, 2023/09/04
- [PULL 32/52] ui/console: simplify getting active_console size, marcandre . lureau, 2023/09/04
- [PULL 35/52] ui/console: declare console types in console.h, marcandre . lureau, 2023/09/04
- [PULL 37/52] ui/console: rename vga_ functions with qemu_console_, marcandre . lureau, 2023/09/04
- [PULL 33/52] ui/console: remove need for g_width/g_height, marcandre . lureau, 2023/09/04
- [PULL 34/52] ui/vc: use common text console surface creation, marcandre . lureau, 2023/09/04
- [PULL 36/52] ui/console: use QEMU_PIXMAN_COLOR helpers, marcandre . lureau, 2023/09/04
- [PULL 38/52] ui/console: assert(surface) where appropriate, marcandre . lureau, 2023/09/04
- [PULL 39/52] ui/console: fold text_console_update_cursor_timer, marcandre . lureau, 2023/09/04
- [PULL 40/52] ui/vc: skip text console resize when possible, marcandre . lureau, 2023/09/04