diff options
author | Alex Auvolat <alex.auvolat@ens.fr> | 2015-02-09 17:39:41 +0100 |
---|---|---|
committer | Alex Auvolat <alex.auvolat@ens.fr> | 2015-02-09 17:40:03 +0100 |
commit | f2c51bc81d2aa618b29ddbeaae5ac1c5308821f0 (patch) | |
tree | fae67a79d5e60128d074550326a05216694a5848 /src/kernel/core/sys.c | |
parent | a5dfdd2b3fa91a2cda4f807c88bd35928e3c7a61 (diff) | |
download | kogata-f2c51bc81d2aa618b29ddbeaae5ac1c5308821f0.tar.gz kogata-f2c51bc81d2aa618b29ddbeaae5ac1c5308821f0.zip |
Reorganize all.
Diffstat (limited to 'src/kernel/core/sys.c')
-rw-r--r-- | src/kernel/core/sys.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/kernel/core/sys.c b/src/kernel/core/sys.c new file mode 100644 index 0000000..2b77463 --- /dev/null +++ b/src/kernel/core/sys.c @@ -0,0 +1,25 @@ +#include <sys.h> +#include <dbglog.h> + + +// Kernel panic and kernel assert failure + +static void panic_do(const char* type, const char *msg, const char* file, int line) { + asm volatile("cli;"); + dbg_printf("/\n| %s:\t%s\n", type, msg); + dbg_printf("| File: \t%s:%i\n", file, line); + dbg_printf("| System halted -_-'\n"); + dbg_printf("\\---------------------------------------------------------/"); + BOCHS_BREAKPOINT; + asm volatile("hlt"); +} + +void panic(const char* message, const char* file, int line) { + panic_do("PANIC", message, file, line); +} + +void panic_assert(const char* assertion, const char* file, int line) { + panic_do("ASSERT FAILED", assertion, file, line); +} + +/* vim: set ts=4 sw=4 tw=0 noet :*/ |