mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
Fix handling of stack
svn path=/branches/ros-amd64-bringup/; revision=35527
This commit is contained in:
@@ -50,6 +50,7 @@ _KiSetupStackAndInitializeKernel:
|
||||
|
||||
/* Setup the new stack */
|
||||
mov rsp, r8
|
||||
sub rsp, 0x300 // FIXME
|
||||
|
||||
/* Copy stack parameters to the new stack */
|
||||
sub rsp, 0x38
|
||||
|
||||
@@ -694,6 +694,9 @@ KiSystemStartupReal(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
|
||||
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]);
|
||||
|
||||
@@ -785,10 +788,6 @@ FrLdrDbgPrint("Gdt = %p, Idt = %p, Pcr = %p, Tss = %p\n", Gdt, Idt, Pcr, Tss);
|
||||
/* 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,
|
||||
InitialThread,
|
||||
|
||||
Reference in New Issue
Block a user