diff options
Diffstat (limited to 'kernel/printk.c')
| -rw-r--r-- | kernel/printk.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/kernel/printk.c b/kernel/printk.c index bd2bcab..1cc68db 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -3,7 +3,7 @@ #include <fbos/string.h> #include <fbos/sbi.h> -void __noreturn __kernel die(const char *const message) +__kernel __noreturn void die(const char *const message) { if (message) { printk(message); @@ -13,6 +13,19 @@ void __noreturn __kernel die(const char *const message) ; } +__kernel void print_digit(uint32_t digit) +{ + char buffer[2]; + + if (digit > 9) { + die("We cannot print numbers with two or more digits :D\n"); + } + + buffer[0] = '0' + digit; + buffer[1] = '\0'; + write(buffer, 2); +} + __kernel void write(const char *const message, size_t n) { struct sbi_ret ret = sbi_ecall2(DBCN_EXT, DBCN_WRITE, n, (unsigned long)message); |
