diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2023-08-30 13:38:04 +0400 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2023-09-04 13:56:24 +0400 |
commit | 98ee9dab81b2bc75d6ccf86681053ed80f9fc9af (patch) | |
tree | 726da97f9fe6dec25cf9355eb212b84593afee5d /ui | |
parent | 58d5870845c61cea1e7df287b86c2607b2bf48a9 (diff) |
ui/vc: fold text_console_do_init() in vc_chr_open()
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20230830093843.3531473-31-marcandre.lureau@redhat.com>
Diffstat (limited to 'ui')
-rw-r--r-- | ui/console.c | 80 |
1 files 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) |