lib: sbi: Make console_puts/console_putc interchangeable

console_puts/console_putc should replace each other, but the previous
sbi_putc can only use console_putc. This patch addresses this problem.

Signed-off-by: Xiang W <wxjstz@126.com>
Reviewed-by: Guo Ren <guoren@kernel.org>
Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
Xiang W
2023-11-17 09:03:58 +08:00
committed by Anup Patel
parent 6602e11de3
commit 3aaed4fadf

View File

@@ -37,28 +37,22 @@ int sbi_getc(void)
return -1; return -1;
} }
void sbi_putc(char ch)
{
if (console_dev && console_dev->console_putc) {
if (ch == '\n')
console_dev->console_putc('\r');
console_dev->console_putc(ch);
}
}
static unsigned long nputs(const char *str, unsigned long len) static unsigned long nputs(const char *str, unsigned long len)
{ {
unsigned long i, ret; unsigned long i;
if (console_dev && console_dev->console_puts) { if (console_dev) {
ret = console_dev->console_puts(str, len); if (console_dev->console_puts)
} else { return console_dev->console_puts(str, len);
for (i = 0; i < len; i++) else if (console_dev->console_putc) {
sbi_putc(str[i]); for (i = 0; i < len; i++) {
ret = len; if (str[i] == '\n')
console_dev->console_putc('\r');
console_dev->console_putc(str[i]);
}
}
} }
return len;
return ret;
} }
static void nputs_all(const char *str, unsigned long len) static void nputs_all(const char *str, unsigned long len)
@@ -69,6 +63,11 @@ static void nputs_all(const char *str, unsigned long len)
p += nputs(&str[p], len - p); p += nputs(&str[p], len - p);
} }
void sbi_putc(char ch)
{
nputs_all(&ch, 1);
}
void sbi_puts(const char *str) void sbi_puts(const char *str)
{ {
unsigned long len = sbi_strlen(str); unsigned long len = sbi_strlen(str);