summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAtish Patra <[email protected]>2019-02-27 17:42:17 -0800
committerAnup Patel <[email protected]>2019-03-05 14:05:12 +0530
commit86cc9b8633bea3bc6fbda145424f871ea553af9e (patch)
treedd63e0eee35ed225059db03f36405842715792bb /lib
parent05602e2bf4812533adcb7acb1a67e43726c0e7bb (diff)
lib:platform: Fix sbi_getc return type.
As per the current SBI specification, sbi_getc should return an int instead of char. In case of FIFO is empty, return -1 as per the specification. Reported-by: Sergi Granell <[email protected]> Suggested-by:Thadeu Lima de Souza Cascardo <[email protected]> Signed-off-by: Atish Patra <[email protected]>
Diffstat (limited to 'lib')
-rw-r--r--lib/sbi_console.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/sbi_console.c b/lib/sbi_console.c
index bc8f9526..527748f6 100644
--- a/lib/sbi_console.c
+++ b/lib/sbi_console.c
@@ -26,7 +26,7 @@ bool sbi_isprintable(char c)
return FALSE;
}
-char sbi_getc(void)
+int sbi_getc(void)
{
return sbi_platform_console_getc(console_plat);
}
@@ -50,10 +50,11 @@ void sbi_puts(const char *str)
void sbi_gets(char *s, int maxwidth, char endchar)
{
- char ch, *retval = s;
+ int ch;
+ char *retval = s;
- while ((ch = sbi_getc()) != endchar && maxwidth > 1) {
- *retval = ch;
+ while ((ch = sbi_getc()) != endchar && ch >= 0 && maxwidth > 1) {
+ *retval = (char) ch;
retval++;
maxwidth--;
}