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 <xerpi.g.12@gmail.com>
Suggested-by:Thadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Signed-off-by: Atish Patra <atish.patra@wdc.com>
This commit is contained in:
Atish Patra
2019-02-27 17:42:17 -08:00
committed by Anup Patel
parent 05602e2bf4
commit 86cc9b8633
11 changed files with 20 additions and 19 deletions

View File

@@ -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--;
}