From d36487d9fd2c19b54a3b97bdf3562a17184711fe Mon Sep 17 00:00:00 2001 From: Aleksa Vuckovic Date: Tue, 29 Nov 2022 11:55:47 +0100 Subject: kernel panic --- kernel/src/libk/serial_stdio.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'kernel/src/libk/serial_stdio.c') diff --git a/kernel/src/libk/serial_stdio.c b/kernel/src/libk/serial_stdio.c index fb61ba1..951a170 100644 --- a/kernel/src/libk/serial_stdio.c +++ b/kernel/src/libk/serial_stdio.c @@ -33,12 +33,19 @@ void serial_print_hex(uint64_t num) void serial_printf(const char *s, ...) { - size_t count = 0; - for(size_t i = 0; i < strlen(s); i++) if(s[i] == '%') count++; - va_list list; va_start(list, s); + serial_vprintf(s, list); + + va_end(list); +} + +void serial_vprintf(const char *s, va_list list) +{ + size_t count = 0; + for(size_t i = 0; i < strlen(s); i++) if(s[i] == '%') count++; + for(size_t i = 0; i < strlen(s); i++) { if(s[i] == '%') @@ -50,12 +57,10 @@ void serial_printf(const char *s, ...) else if(s[i] == 'x') serial_print_hex((uint64_t)va_arg(list, uint64_t)); else { - serial_print_string("Wrong format using serial_printf\n"); + serial_print_string("Wrong format using printf\n"); return; } } else serial_print_char(s[i]); } - - va_end(list); } -- cgit v1.2.3