diff options
author | Tyler Murphy <=> | 2023-07-17 19:34:52 -0400 |
---|---|---|
committer | Tyler Murphy <=> | 2023-07-17 19:34:52 -0400 |
commit | 7a912d1b668ab86ffe088eca3ac7e6f78a04a0c5 (patch) | |
tree | 4e86ff20e73171285156631db043e12aaf63bf04 /kernel/src/print/print.c | |
parent | paging (diff) | |
download | finix-7a912d1b668ab86ffe088eca3ac7e6f78a04a0c5.tar.gz finix-7a912d1b668ab86ffe088eca3ac7e6f78a04a0c5.tar.bz2 finix-7a912d1b668ab86ffe088eca3ac7e6f78a04a0c5.zip |
refactoring
Diffstat (limited to 'kernel/src/print/print.c')
-rw-r--r-- | kernel/src/print/print.c | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/kernel/src/print/print.c b/kernel/src/print/print.c deleted file mode 100644 index 46ec047..0000000 --- a/kernel/src/print/print.c +++ /dev/null @@ -1,128 +0,0 @@ -#include "tty/color.h" -#include "tty/term.h" -#include <stdbool.h> -#include <stdint.h> -#include <stdlib.h> -#include <string.h> -#include <print.h> - -void printk(const char *restrict format, ...) { - va_list args; - va_start(args, format); - vprintk(format, args); - va_end(args); -} - -void vprintk(const char *restrict format, va_list args) { - char buf[80]; - for (; *format; format++) { - if (*format == '%') { - bool l = false; - char c = *++format; - if (c == 'l') { - l = true; - c = *++format; - } - switch(c) { - case '%': - putchar('%'); - break; - case 's': - puts(va_arg(args, char*)); - break; - case 'c': - putchar(va_arg(args, int)); - break; - case 'd': - if (l) ltoa(va_arg(args, long long), buf, 10); - else itoa(va_arg(args, int), buf, 10); - puts(buf); - break; - case 'u': - if (l) ultoa(va_arg(args, unsigned long long), buf, 10); - else utoa(va_arg(args, unsigned int), buf, 10); - puts(buf); - break; - case 'f': - case 'F': - ftoa(va_arg(args, double), buf); - puts(buf); - break; - case 'x': - case 'X': - utoa(va_arg(args, unsigned int), buf, 16); - puts(buf); - break; - case 'b': - va_arg(args, int) ? puts("true") : puts("false"); - break; - case 'k': { - static char disp[] = {'B', 'K', 'M', 'G'}; - uint32_t size = va_arg(args, unsigned int); - size_t i = 0; - while (size / 1024 > 0) { - size /= 1024; - i++; - } - utoa(size, buf, 10); - puts(buf); - putchar(disp[i]); - if (i > 0) putchar('B'); - break; - } - default: - break; - } - } else { - putchar(*format); - } - } -} - -void puts(const char *s) { - for(; *s; s++) putchar(*s); -} - -void printl(enum VGAColor color, const char* msg) { - term_setbg(VGA_BLACK); - term_setfg(VGA_WHITE); - putchar('['); - term_setfg(color); - printk("%s", msg); - term_setfg(VGA_WHITE); - putchar(']'); - putchar(' '); -} - -void _debugk_impl(char *format, ...) { - uint16_t color = term_save_col(); - printl(VGA_LIGHT_CYAN, "LOG"); - va_list args; - va_start(args, format); - vprintk(format, args); - va_end(args); - if (!term_newline()) putchar('\n'); - term_load_col(color); -} - -void _succek_impl(char *format, ...) { - uint16_t color = term_save_col(); - printl(VGA_LIGHT_GREEN, "OK"); - va_list args; - va_start(args, format); - vprintk(format, args); - va_end(args); - if (!term_newline()) putchar('\n'); - term_load_col(color); -} - -void _errork_impl(char *format, ...) { - uint16_t color = term_save_col(); - printl(VGA_LIGHT_RED, "ERR"); - va_list args; - va_start(args, format); - vprintk(format, args); - va_end(args); - if (!term_newline()) putchar('\n'); - term_load_col(color); -} |