/* * FILE: ntoskrnl/ke/i386/boot.S * COPYRIGHT: See COPYING in the top level directory * PURPOSE: FreeLDR Wrapper Bootstrap Code and Bootstrap Trampoline * PROGRAMMERs: Alex Ionescu (alex@relsoft.net) * Thomas Weidenmueller */ /* INCLUDES ******************************************************************/ #include #include EXTERN KiInitializeKernelAndGotoIdleLoop:PROC /* GLOBALS *******************************************************************/ /* FUNCTIONS *****************************************************************/ .code64 .text /** * VOID * KiSetupStackAndInitializeKernel( * IN PKPROCESS InitProcess, * IN PKTHREAD InitThread, * IN PVOID IdleStack, * IN PKPRCB Prcb, * IN CCHAR Number, * IN PLOADER_PARAMETER_BLOCK LoaderBlock) */ PUBLIC KiSetupStackAndInitializeKernel .PROC KiSetupStackAndInitializeKernel /* Save current stack */ mov rsi, rsp /* Setup the new stack */ mov ax, HEX(18) mov ss, ax mov rsp, r8 sub rsp, HEX(300) // FIXME /* Copy stack parameters to the new stack */ sub rsp, HEX(38) .ENDPROLOG mov rdi, rsp movsq movsq movsq movsq movsq movsq movsq jmp KiInitializeKernelAndGotoIdleLoop .ENDP KiSetupStackAndInitializeKernel END