2 * FILE: ntoskrnl/ke/i386/boot.S
3 * COPYRIGHT: See COPYING in the top level directory
4 * PURPOSE: FreeLDR Wrapper Bootstrap Code and Bootstrap Trampoline
5 * PROGRAMMERs: Alex Ionescu (alex@relsoft.net)
6 * Thomas Weidenmueller <w3seek@reactos.org>
9 /* INCLUDES ******************************************************************/
12 .intel_syntax noprefix
15 /* GLOBALS *******************************************************************/
20 /* Kernel Boot Stack */
22 .space KERNEL_STACK_SIZE
25 /* Kernel Double-Fault and Temporary DPC Stack */
26 .globl _KiDoubleFaultStack
27 .space KERNEL_STACK_SIZE
30 /* FUNCTIONS *****************************************************************/
36 * KiSetupStackAndInitializeKernel(
37 * IN PKPROCESS InitProcess, <rsp + 0x08, rcx>
38 * IN PKTHREAD InitThread, <rsp + 0x10, rdx>
39 * IN PVOID IdleStack, <rsp + 0x18, r8>
40 * IN PKPRCB Prcb, <rsp + 0x20, r9>
41 * IN CCHAR Number, <rsp + 0x28>
42 * IN PLOADER_PARAMETER_BLOCK LoaderBlock) <rsp + 0x30>
44 .globl _KiSetupStackAndInitializeKernel
45 .func KiSetupStackAndInitializeKernel
46 _KiSetupStackAndInitializeKernel:
48 /* Save current stack */
51 /* Setup the new stack */
53 sub rsp, 0x300 // FIXME
55 /* Copy stack parameters to the new stack */
66 jmp _KiInitializeKernelAndGotoIdleLoop