summaryrefslogtreecommitdiff
path: root/kernel/src/libk/stdio.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/libk/stdio.c')
-rw-r--r--kernel/src/libk/stdio.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/src/libk/stdio.c b/kernel/src/libk/stdio.c
index b8ddb67..be75b73 100644
--- a/kernel/src/libk/stdio.c
+++ b/kernel/src/libk/stdio.c
@@ -47,6 +47,13 @@ inline void print_int(uint64_t num)
print_string(a);
}
+inline void print_hex(uint64_t num)
+{
+ char a[100];
+ itoh(num, a);
+ print_string(a);
+}
+
void printf(const char *s, ...)
{
size_t count = 0;
@@ -63,6 +70,7 @@ void printf(const char *s, ...)
if(s[i] == 'c') print_char((char)va_arg(list, uint32_t));
else if(s[i] == 's') print_string(va_arg(list, char*));
else if(s[i] == 'd') print_int((uint64_t)va_arg(list, uint64_t));
+ else if(s[i] == 'x') print_hex((uint64_t)va_arg(list, uint64_t));
else
{
print_string("Wrong format using printf\n");