From 2a49da9d5f2ba51146b6a897168a4ed24ff45c11 Mon Sep 17 00:00:00 2001 From: Victor Timofei Date: Tue, 3 May 2022 23:24:05 +0300 Subject: [PATCH] Add hex formating support in kprintf --- kernel/kernel.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/kernel/kernel.c b/kernel/kernel.c index b898582..9d7829a 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -109,7 +109,13 @@ void convert(int num, int base, char *buf, int bufsize) if (idx == bufsize - 1) break; - buf[idx] = (num % base) + '0'; + int remainder = num % base; + + if (remainder > 9) + buf[idx] = remainder - 10 + 'A'; + else + buf[idx] = remainder + '0'; + num /= base; idx++; } while(num != 0); @@ -153,6 +159,12 @@ void kprintf(char *format, ...) convert(i, 10, buffer, 50); console_write(buffer); break; + case 'X': + i = va_arg(arg, int); + + convert(i, 16, buffer, 50); + console_write(buffer); + break; } }