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;
}
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)
{
unsigned long i, ret;
unsigned long i;
if (console_dev && console_dev->console_puts) {
ret = console_dev->console_puts(str, len);
} else {
for (i = 0; i < len; i++)
sbi_putc(str[i]);
ret = len;
if (console_dev) {
if (console_dev->console_puts)
return console_dev->console_puts(str, len);
else if (console_dev->console_putc) {
for (i = 0; i < len; i++) {
if (str[i] == '\n')
console_dev->console_putc('\r');
console_dev->console_putc(str[i]);
}
}
}
return ret;
return 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);
}
void sbi_putc(char ch)
{
nputs_all(&ch, 1);
}
void sbi_puts(const char *str)
{
unsigned long len = sbi_strlen(str);