From ecbcb2509f4b811bce0a56e07de9737d14815251 Mon Sep 17 00:00:00 2001 From: Josh Rahm Date: Tue, 24 Nov 2020 15:15:11 -0700 Subject: Add better logging capabilities, including the ability to panic. --- include/kern/init.h | 14 ++++++++++++++ include/kern/log.h | 11 +++++++++++ include/kern/panic.h | 6 ++++++ 3 files changed, 31 insertions(+) create mode 100644 include/kern/panic.h (limited to 'include') diff --git a/include/kern/init.h b/include/kern/init.h index 737b85f..0ebbeac 100644 --- a/include/kern/init.h +++ b/include/kern/init.h @@ -64,4 +64,18 @@ void(*init7_ptr)() = init7fn; \ static void init7fn +typedef enum { + INIT_LEVEL_0, + INIT_LEVEL_1, + INIT_LEVEL_2, + INIT_LEVEL_3, + INIT_LEVEL_4, + INIT_LEVEL_5, + INIT_LEVEL_6, + INIT_LEVEL_7, + INIT_LEVEL_MAIN, +} init_level_t; + +init_level_t get_system_init_level(); + #endif /* INIT_H_ */ diff --git a/include/kern/log.h b/include/kern/log.h index 5e49def..e1e4088 100644 --- a/include/kern/log.h +++ b/include/kern/log.h @@ -1,6 +1,8 @@ #ifndef LOG_H_ #define LOG_H_ +#include + /* * Defines logging capabilities. This logging unit will enable logging on * the systems main USART output. @@ -9,4 +11,13 @@ /** Similar to fprintf, but with a stripped-down format-string DSL. */ void klogf(const char* fmt, ...); +/** Like klogf, but with a va_list argument. */ +void kvlogf(const char* fmt, va_list args); + +/** Log the following message as an error. */ +void kerr_logf(const char* fmt, ...); + +/** Like klogf, but with a va_list argument. */ +void kerr_vlogf(const char* fmt, va_list args); + #endif diff --git a/include/kern/panic.h b/include/kern/panic.h new file mode 100644 index 0000000..aa064bf --- /dev/null +++ b/include/kern/panic.h @@ -0,0 +1,6 @@ +#ifndef KERN_PANIC_H_ +#define KERN_PANIC_H_ + +_Noreturn void panic(const char* fmt, ...); + +#endif -- cgit