[ros-diffs] [tkreuzer] 35527: Fix handling of stack

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Fri Aug 22 14:20:02 CEST 2008


Author: tkreuzer
Date: Fri Aug 22 07:20:01 2008
New Revision: 35527

URL: http://svn.reactos.org/svn/reactos?rev=35527&view=rev
Log:
Fix handling of stack

Modified:
    branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/boot.S
    branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/kiinit.c

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/boot.S
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/boot.S?rev=35527&r1=35526&r2=35527&view=diff
==============================================================================
--- 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] Fri Aug 22 07:20:01 2008
@@ -50,6 +50,7 @@
 
     /* Setup the new stack */
     mov rsp, r8
+    sub rsp, 0x300 // FIXME
 
     /* Copy stack parameters to the new stack */
     sub rsp, 0x38

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/kiinit.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/kiinit.c?rev=35527&r1=35526&r2=35527&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/kiinit.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/kiinit.c [iso-8859-1] Fri Aug 22 07:20:01 2008
@@ -694,6 +694,9 @@
     InitialStack = LoaderBlock->KernelStack; // Chekme
     InitialThread = (PKTHREAD)LoaderBlock->Thread;
 
+    /* Align stack to 16 bytes */
+    InitialStack &= ~(16 - 1);
+
     /* Clean the APC List Head */
     InitializeListHead(&InitialThread->ApcState.ApcListHead[KernelMode]);
 
@@ -784,10 +787,6 @@
 
     /* Raise to HIGH_LEVEL */
     KfRaiseIrql(HIGH_LEVEL);
-
-    /* Align stack and make space for the trap frame */
-    InitialStack -= sizeof(KTRAP_FRAME) + 0x100; // FIXME
-    InitialStack &= ~(16 - 1);
 
     /* Switch to new kernel stack and start kernel bootstrapping */
     KiSetupStackAndInitializeKernel(&KiInitialProcess.Pcb,



More information about the Ros-diffs mailing list