diff --git a/src/Makefile b/src/Makefile index dc84b18..d9abf7d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -20,7 +20,7 @@ CPPFLAGS = \ $(MRUBY_FLAGS) \ -DKERNAUX_DEBUG \ -OBJS = start.S.o main.c.o libc.c.o +OBJS = start.S.o main.c.o libc.c.o logger.c.o all: $(MRUBYVISOR) diff --git a/src/libc.c b/src/libc.c index 661d050..31833a9 100644 --- a/src/libc.c +++ b/src/libc.c @@ -1,4 +1,5 @@ #include "libc.h" +#include "logger.h" #include @@ -42,7 +43,7 @@ void my_abort() void my_exit(const int status) { - kernaux_drivers_console_printf("exit: %d\n", status); + logger_exit(status); kernaux_drivers_shutdown_poweroff(); // TODO: libkernaux shutdown poweroff noreturn diff --git a/src/logger.c b/src/logger.c new file mode 100644 index 0000000..0da8a7b --- /dev/null +++ b/src/logger.c @@ -0,0 +1,16 @@ +#include "logger.h" + +#include + +void logger_assert( + const char *const file, + const int line, + const char *const str +) { + kernaux_drivers_console_printf("panic: %s:%u: \"%s\"\n", file, line, str); +} + +void logger_exit(const int status) +{ + kernaux_drivers_console_printf("exit: %d\n", status); +} diff --git a/src/logger.h b/src/logger.h new file mode 100644 index 0000000..fd0afee --- /dev/null +++ b/src/logger.h @@ -0,0 +1,7 @@ +#ifndef INCLUDED_LOGGER +#define INCLUDED_LOGGER + +void logger_assert(const char *file, int line, const char *str); +void logger_exit(int status); + +#endif diff --git a/src/main.c b/src/main.c index 8b21caa..45f9bb0 100644 --- a/src/main.c +++ b/src/main.c @@ -1,4 +1,5 @@ #include "libc.h" +#include "logger.h" #include #include @@ -76,7 +77,7 @@ void main( void assert(const char *const file, const int line, const char *const str) { - kernaux_drivers_console_printf("panic: %s:%u: \"%s\"\n", file, line, str); + logger_assert(file, line, str); kernaux_drivers_shutdown_poweroff(); }