X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/df61e9d0fec3d5e75820e27e7a2459d132364585..290981180b9abc454e017271a8ebe75478c00e86:/lunaix-os/kernel/kprintf.c diff --git a/lunaix-os/kernel/kprintf.c b/lunaix-os/kernel/kprintf.c index d18691a..0da00ff 100644 --- a/lunaix-os/kernel/kprintf.c +++ b/lunaix-os/kernel/kprintf.c @@ -22,51 +22,51 @@ __kprintf(const char* component, const char* fmt, va_list args) switch (log_level) { case '0': - snprintf(expanded_fmt, - MAX_XFMT_SIZE, - "[%s] (%s) %s", - "INFO", - component, - fmt); + ksnprintf(expanded_fmt, + MAX_XFMT_SIZE, + "[%s] (%s) %s", + "INFO", + component, + fmt); break; case '1': // tty_set_theme(VGA_COLOR_BROWN, current_theme >> 12); - snprintf(expanded_fmt, - MAX_XFMT_SIZE, - "\033[6;0m[%s] (%s) %s\033[39;49m", - "WARN", - component, - fmt); + ksnprintf(expanded_fmt, + MAX_XFMT_SIZE, + "\033[6;0m[%s] (%s) %s\033[39;49m", + "WARN", + component, + fmt); break; case '2': // tty_set_theme(VGA_COLOR_LIGHT_RED, current_theme >> 12); - snprintf(expanded_fmt, - MAX_XFMT_SIZE, - "\033[12;0m[%s] (%s) %s\033[39;49m", - "EROR", - component, - fmt); + ksnprintf(expanded_fmt, + MAX_XFMT_SIZE, + "\033[12;0m[%s] (%s) %s\033[39;49m", + "EROR", + component, + fmt); break; case '3': // tty_set_theme(VGA_COLOR_LIGHT_BLUE, current_theme >> 12); - snprintf(expanded_fmt, - MAX_XFMT_SIZE, - "\033[9;0m[%s] (%s) %s\033[39;49m", - "DEBG", - component, - fmt); + ksnprintf(expanded_fmt, + MAX_XFMT_SIZE, + "\033[9;0m[%s] (%s) %s\033[39;49m", + "DEBG", + component, + fmt); break; default: - snprintf(expanded_fmt, - MAX_XFMT_SIZE, - "[%s] (%s) %s", - "LOG", - component, - fmt); + ksnprintf(expanded_fmt, + MAX_XFMT_SIZE, + "[%s] (%s) %s", + "LOG", + component, + fmt); break; } - __sprintf_internal(buf, expanded_fmt, MAX_KPRINTF_BUF_SIZE, args); + __ksprintf_internal(buf, expanded_fmt, MAX_KPRINTF_BUF_SIZE, args); console_write_str(buf); } @@ -80,12 +80,30 @@ kprint_panic(const char* fmt, ...) tty_set_theme(VGA_COLOR_WHITE, VGA_COLOR_RED); tty_clear_line(24); - __sprintf_internal(buf, fmt, MAX_KPRINTF_BUF_SIZE, args); + __ksprintf_internal(buf, fmt, MAX_KPRINTF_BUF_SIZE, args); tty_put_str_at(buf, 0, 24); va_end(args); } +void +kprint_dbg(const char* fmt, ...) +{ + char buf[MAX_KPRINTF_BUF_SIZE]; + va_list args; + va_start(args, fmt); + + tty_set_theme(VGA_COLOR_WHITE, VGA_COLOR_MAGENTA); + tty_clear_line(24); + + __ksprintf_internal(buf, fmt, MAX_KPRINTF_BUF_SIZE, args); + tty_put_str_at(buf, 0, 24); + + va_end(args); + + tty_set_theme(VGA_COLOR_WHITE, VGA_COLOR_BLACK); +} + void kprint_hex(const void* buffer, unsigned int size) { @@ -98,12 +116,12 @@ kprint_hex(const void* buffer, unsigned int size) ch_cache[0] = '|'; ch_cache[1] = ' '; while (size) { - snprintf(buf, 64, " %.4p: ", ptr); + ksnprintf(buf, 64, " %.4p: ", ptr); console_write_str(buf); for (i = 0; i < 8 && size; i++, size--, ptr++) { unsigned char c = *(data + ptr) & 0xff; ch_cache[2 + i] = (32 <= c && c < 127) ? c : '.'; - snprintf(buf, 64, "%.2x ", c); + ksnprintf(buf, 64, "%.2x ", c); console_write_str(buf); } ch_cache[2 + i] = '\0';