summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEran Mitrani <mitrani@google.com>2023-09-14 14:57:10 -0700
committerFelix Held <felix-coreboot@felixheld.de>2023-09-18 13:15:44 +0000
commita63a56d57210cd129ea2305019a9f766e2c84429 (patch)
tree8926d63de556045b91a3d0c6b33b8646199abbda
parent31a0fdd039ed75b584a4990523b723156447994f (diff)
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 <mitrani@google.com> Change-Id: I585add120b559396bc0e28aa972b0ae2a33f1fa8 Reviewed-on: https://review.coreboot.org/c/coreboot/+/77900 Reviewed-by: Kapil Porwal <kapilporwal@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Subrata Banik <subratabanik@google.com>
-rw-r--r--payloads/libpayload/drivers/video/video.c7
-rw-r--r--payloads/libpayload/include/libpayload.h1
2 files changed, 8 insertions, 0 deletions
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.