kexts: fbcon: support scrolling multiple lines under vgacon

This commit is contained in:
2023-06-11 14:53:22 +01:00
parent 1adb635303
commit a75c620dde

View File

@@ -167,10 +167,19 @@ static void vgacon_move_cursor(struct device *dev, int x, int y)
static void vgacon_scroll(struct device *dev, enum tty_scroll_dir dir, int lines) static void vgacon_scroll(struct device *dev, enum tty_scroll_dir dir, int lines)
{ {
uint16_t *src = g_console_fb + (k_console_width * lines);
uint16_t *dst = g_console_fb;
size_t n = k_console_width * (k_console_height - lines) * 2;
memmove(dst, src, n);
dst = g_console_fb + ((k_console_height - lines) * k_console_width);
for (int i = 0; i < k_console_width * lines; i++) {
dst[i] = VGA_CHAR(0, DEFAULT_ATTRIB);
}
} }
static struct tty_driver_ops vgacon_ops = { static struct tty_driver_ops vgacon_ops = {
.tty_init = vgacon_init, .tty_init = vgacon_init,
.tty_deinit = vgacon_deinit, .tty_deinit = vgacon_deinit,