Author: tkreuzer
Date: Sat Jan 24 19:17:04 2009
New Revision: 39074
URL:
http://svn.reactos.org/svn/reactos?rev=39074&view=rev
Log:
ntoskrnl/Ke: setup stack segment selector in KeSetupsStackAndInitializeKernel, comment out
decrement of Rip on int3 dispatch (needs further investigation), use CONTEXT_ALL flags
when creating the CONTEXT from the trap frame in KeDispatchException
Modified:
branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/boot.S
branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/except.c
Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/boot.S
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntosk…
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/boot.S [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/boot.S [iso-8859-1] Sat Jan 24
19:17:04 2009
@@ -49,6 +49,8 @@
mov rsi, rsp
/* Setup the new stack */
+ mov ax, 0x18
+ mov ss, ax
mov rsp, r8
sub rsp, 0x300 // FIXME
Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/except.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntosk…
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/except.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/except.c [iso-8859-1] Sat Jan 24
19:17:04 2009
@@ -107,14 +107,7 @@
KeGetCurrentPrcb()->KeExceptionDispatchCount++;
/* Set the context flags */
- Context.ContextFlags = CONTEXT_FULL | CONTEXT_DEBUG_REGISTERS;
-
- /* Check if User Mode or if the debugger is enabled */
- if ((PreviousMode == UserMode) || (KdDebuggerEnabled))
- {
- /* Add the FPU Flag */
- Context.ContextFlags |= CONTEXT_FLOATING_POINT;
- }
+ Context.ContextFlags = CONTEXT_ALL;
/* Get a Context */
KeTrapFrameToContext(TrapFrame, ExceptionFrame, &Context);
@@ -126,7 +119,8 @@
case STATUS_BREAKPOINT:
/* Decrement RIP by one */
- Context.Rip--;
+ // FIXME: that doesn't work, why?
+// Context.Rip--;
break;
/* Internal exception */