diff options
| author | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-11-29 11:55:47 +0100 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-11-29 11:57:20 +0100 |
| commit | d36487d9fd2c19b54a3b97bdf3562a17184711fe (patch) | |
| tree | 63c6d641925e7a78a9cb9ff89562c26b77b2bf3b /kernel/src/libk/serial_stdio.c | |
| parent | 450b9160fdcdb0b770b316caf1d72ab893bc7aa5 (diff) | |
kernel panic
Diffstat (limited to 'kernel/src/libk/serial_stdio.c')
| -rw-r--r-- | kernel/src/libk/serial_stdio.c | 17 |
1 files changed, 11 insertions, 6 deletions
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); } |
