video: add video_printf
video_printf prints strings on the screen with specified foreground and background color. BUG=none BRANCH=smaug TEST=verified messages printed on Smaug Change-Id: I619625f7d4c5bc19cd9de64a0ba07899cf9ba289 Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Original-Commit-Id: e0ac4cb4c0d43b40f5c8f8f5a90eac45b0263b77 Original-Reviewed-on: https://chromium-review.googlesource.com/290130 Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Original-(cherry picked from commit 75ea2c025d629c8fabc0cb859c4e8ab8ba6ce6e3) Original-Change-Id: Ief6d1fc820330b54f37ad9260cf3119853460b70 Original-Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/290373 Reviewed-on: http://review.coreboot.org/11407 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
committed by
Patrick Georgi
parent
4bd65e1c0c
commit
abe03d25e2
@ -162,6 +162,27 @@ void video_console_putchar(unsigned int ch)
|
||||
video_console_fixup_cursor();
|
||||
}
|
||||
|
||||
void video_printf(int foreground, int background, const char *fmt, ...)
|
||||
{
|
||||
int i = 0, len;
|
||||
char str[200];
|
||||
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
len = vsnprintf(str, ARRAY_SIZE(str), fmt, ap);
|
||||
va_end(ap);
|
||||
if (len <= 0)
|
||||
return;
|
||||
|
||||
foreground &= 0xf;
|
||||
foreground <<= 8;
|
||||
background &= 0xf;
|
||||
background <<= 12;
|
||||
|
||||
while (str[i])
|
||||
video_console_putchar(str[i++] | foreground | background);
|
||||
}
|
||||
|
||||
void video_console_get_cursor(unsigned int *x, unsigned int *y, unsigned int *en)
|
||||
{
|
||||
*x=0;
|
||||
|
@ -206,6 +206,11 @@ 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);
|
||||
/*
|
||||
* print characters on video console with colors. note that there is a size
|
||||
* restriction for the internal buffer. so, output string can be truncated.
|
||||
*/
|
||||
void video_printf(int foreground, int background, const char *fmt, ...);
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user