#pragma once #include #include extern void putchar(int c); extern void puts(const char* s); extern void printk(const char *restrict format, ...); extern void vprintk(const char *restrict format, va_list ap); #ifdef KERNEL_LOG #define debugk(msg, ...) _debugk_impl(msg, ## __VA_ARGS__) #define succek(msg, ...) _succek_impl(msg, ## __VA_ARGS__) #define errork(msg, ...) _errork_impl(msg, ## __VA_ARGS__) #else #define debugk(msg, ...) #define succek(msg, ...) #define errork(msg, ...) #endif extern void _debugk_impl(char* msg, ...); extern void _succek_impl(char* msg, ...); extern void _errork_impl(char* msg, ...);