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();
|
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)
|
void video_console_get_cursor(unsigned int *x, unsigned int *y, unsigned int *en)
|
||||||
{
|
{
|
||||||
*x=0;
|
*x=0;
|
||||||
|
@ -206,6 +206,11 @@ void video_console_clear(void);
|
|||||||
void video_console_cursor_enable(int state);
|
void video_console_cursor_enable(int state);
|
||||||
void video_console_get_cursor(unsigned int *x, unsigned int *y, unsigned int *en);
|
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_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