aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/core/sys.c
diff options
context:
space:
mode:
authorAlex Auvolat <alex.auvolat@ens.fr>2015-02-09 17:39:41 +0100
committerAlex Auvolat <alex.auvolat@ens.fr>2015-02-09 17:40:03 +0100
commitf2c51bc81d2aa618b29ddbeaae5ac1c5308821f0 (patch)
treefae67a79d5e60128d074550326a05216694a5848 /src/kernel/core/sys.c
parenta5dfdd2b3fa91a2cda4f807c88bd35928e3c7a61 (diff)
downloadkogata-f2c51bc81d2aa618b29ddbeaae5ac1c5308821f0.tar.gz
kogata-f2c51bc81d2aa618b29ddbeaae5ac1c5308821f0.zip
Reorganize all.
Diffstat (limited to 'src/kernel/core/sys.c')
-rw-r--r--src/kernel/core/sys.c25
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 :*/