aboutsummaryrefslogtreecommitdiff
path: root/kernel/printk.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/printk.c')
-rw-r--r--kernel/printk.c15
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);