summaryrefslogtreecommitdiff
path: root/Source/Kernel/Core/Sys.ns.cpp
diff options
context:
space:
mode:
authorAlexis211 <alexis211@gmail.com>2009-10-20 19:23:33 +0200
committerAlexis211 <alexis211@gmail.com>2009-10-20 19:23:33 +0200
commit768ada13917aeda373e6ff5fee21faf90c963746 (patch)
tree9e26d7d65e1693d1a7f9fd93c9fd33b41d175464 /Source/Kernel/Core/Sys.ns.cpp
parent6ec4b3d31080f90393e72989d559cfb76eff6f9d (diff)
parent9836acd720988af30250c2c1ec18d618664dea4e (diff)
downloadMelon-768ada13917aeda373e6ff5fee21faf90c963746.tar.gz
Melon-768ada13917aeda373e6ff5fee21faf90c963746.zip
Merge branch 'usermode_syscalls'
Conflicts: Source/Kernel/Makefile
Diffstat (limited to 'Source/Kernel/Core/Sys.ns.cpp')
-rw-r--r--Source/Kernel/Core/Sys.ns.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/Source/Kernel/Core/Sys.ns.cpp b/Source/Kernel/Core/Sys.ns.cpp
index c0218d8..c99544b 100644
--- a/Source/Kernel/Core/Sys.ns.cpp
+++ b/Source/Kernel/Core/Sys.ns.cpp
@@ -1,5 +1,5 @@
//This automatically includes Sys.ns.h
-#include <Core/common.wtf.h>
+#include <common.h>
#include <Core/Log.ns.h>
#include <VTManager/SimpleVT.class.h>
#include <SyscallManager/IDT.ns.h>
@@ -93,7 +93,14 @@ void panic(char *message, registers_t *regs, char *file, u32int line) {
vt << "eax=" << (u32int)regs->eax << ", ebx=" << (u32int)regs->ebx << ", ecx=" << (u32int)regs->ecx <<
", edx=" << (u32int)regs->edx << "\n";
vt << "int_no=" << (s32int)regs->int_no << ", err_code=" << (u32int)regs->err_code << "\n";
- vt << "eflags=" << (u32int)regs->eflags << ", useresp=" << (u32int)regs->useresp << ", ss=" << (u32int)regs->ss << "\n\n";
+ vt << "eflags=" << (u32int)regs->eflags << ", useresp=" << (u32int)regs->useresp << ", ss=" << (u32int)regs->ss << "\n";
+ if (regs->int_no == 14) {
+ u32int cr2;
+ asm volatile("mov %%cr2, %0" : "=r"(cr2));
+ vt << "cr2=" << (u32int)cr2 << "\n";
+ }
+ vt << "\n";
+
while (1) asm volatile("cli; hlt");
u32int *v = (u32int*)regs->ebp;