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/ntoskr... ============================================================================== --- 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/ntoskr... ============================================================================== --- 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,