lib: sbi: Add sbi_nputs() function
authorAnup Patel <apatel@ventanamicro.com>
Fri, 22 Jul 2022 10:58:21 +0000 (16:28 +0530)
committerAnup Patel <anup@brainfault.org>
Thu, 9 Feb 2023 16:59:24 +0000 (22:29 +0530)
We add new sbi_nputs() which help us print a fixed number of characters
from a physical memory location.

Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Reviewed-by: Atish Patra <atishp@rivosinc.com>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Xiang W <wxjstz@126.com>
include/sbi/sbi_console.h
lib/sbi/sbi_console.c

index e15b55d..dd6a905 100644 (file)
@@ -33,6 +33,8 @@ void sbi_putc(char ch);
 
 void sbi_puts(const char *str);
 
+unsigned long sbi_nputs(const char *str, unsigned long len);
+
 void sbi_gets(char *s, int maxwidth, char endchar);
 
 int __printf(2, 3) sbi_sprintf(char *out, const char *format, ...);
index bb6e1ef..2f83a26 100644 (file)
@@ -51,6 +51,18 @@ void sbi_puts(const char *str)
        spin_unlock(&console_out_lock);
 }
 
+unsigned long sbi_nputs(const char *str, unsigned long len)
+{
+       unsigned long i;
+
+       spin_lock(&console_out_lock);
+       for (i = 0; i < len; i++)
+               sbi_putc(str[i]);
+       spin_unlock(&console_out_lock);
+
+       return i;
+}
+
 void sbi_gets(char *s, int maxwidth, char endchar)
 {
        int ch;