From a63a56d57210cd129ea2305019a9f766e2c84429 Mon Sep 17 00:00:00 2001 From: Eran Mitrani Date: Thu, 14 Sep 2023 14:57:10 -0700 Subject: [PATCH] libpayload/drivers/video: Add cursor movement support in console Add support for moving the console cursor horizontally and vertically. BUG=b:300405745 TEST=Tested using firmware shell on Rex. Signed-off-by: Eran Mitrani Change-Id: I585add120b559396bc0e28aa972b0ae2a33f1fa8 Reviewed-on: https://review.coreboot.org/c/coreboot/+/77900 Reviewed-by: Kapil Porwal Tested-by: build bot (Jenkins) Reviewed-by: Subrata Banik --- payloads/libpayload/drivers/video/video.c | 7 +++++++ payloads/libpayload/include/libpayload.h | 1 + 2 files changed, 8 insertions(+) diff --git a/payloads/libpayload/drivers/video/video.c b/payloads/libpayload/drivers/video/video.c index 4cd630751a..87d7d7424c 100644 --- a/payloads/libpayload/drivers/video/video.c +++ b/payloads/libpayload/drivers/video/video.c @@ -122,6 +122,13 @@ void video_console_putc(u8 row, u8 col, unsigned int ch) console->putc(row, col, ch); } +void video_console_move_cursor(int x, int y) +{ + cursorx += x; + cursory += y; + video_console_fixup_cursor(); +} + void video_console_putchar(unsigned int ch) { if (!console) diff --git a/payloads/libpayload/include/libpayload.h b/payloads/libpayload/include/libpayload.h index 19ba671a5a..35f2bd735b 100644 --- a/payloads/libpayload/include/libpayload.h +++ b/payloads/libpayload/include/libpayload.h @@ -279,6 +279,7 @@ void video_console_clear(void); void video_console_cursor_enable(int state); void video_console_get_cursor(unsigned int *x, unsigned int *y, unsigned int *en); void video_console_set_cursor(unsigned int cursorx, unsigned int cursory); +void video_console_move_cursor(int x, int y); /* * print characters on video console with colors. note that there is a size * restriction for the internal buffer. so, output string can be truncated.