[FREELDR]: Jump to a standard 1-parameter STDCALL kernel entrypoint instead of a...
authorSir Richard <sir_richard@svn.reactos.org>
Tue, 19 Jan 2010 18:27:24 +0000 (18:27 +0000)
committerSir Richard <sir_richard@svn.reactos.org>
Tue, 19 Jan 2010 18:27:24 +0000 (18:27 +0000)
commit2b21bf41f43a6b438c9607d8ae4ac98b23dc7e5c
treeb8c6da19174cec39ca42baaa784217b3210047e9
parentb5b72b8be631d3dc059c8b2656d102c85cad5b5d
[FREELDR]: Jump to a standard 1-parameter STDCALL kernel entrypoint instead of a FASTCALL double-parameter entrypoint.
[NTOS]: Make KiSystemStartup the real C entrypoint of the kernel, and move the "Am I being booted by FreeLDR" logic inside it -- it will then call KiRosPrepareForSystemStartup as earlier.
[NTOS]: Move the Double Fault and Boot Stack declaration in C code, with the proper alignment attribute.
[NTOS]: Although the concern that KiSystemStartup cannot be 100% C since it modifies ESP is real (Thomas' original fix of Alex's code), we don't need that much of it in assembly. Instead, write a simple trampoline (KiSwitchToBootStack) inline which switches stacks and jumps to a second-stage C function.
[NTOS]: Completely remove boot.S as it isn't needed anymore, ReactOS startup is back to being (nearly) 100% C.

svn path=/trunk/; revision=45152
reactos/boot/freeldr/freeldr/arch/i386/loader.c
reactos/boot/freeldr/freeldr/include/reactos.h
reactos/include/reactos/rosldr.h
reactos/ntoskrnl/include/internal/ke.h
reactos/ntoskrnl/include/internal/trap_x.h
reactos/ntoskrnl/ke/freeldr.c
reactos/ntoskrnl/ke/i386/boot.S [deleted file]
reactos/ntoskrnl/ke/i386/cpu.c
reactos/ntoskrnl/ke/i386/kiinit.c
reactos/ntoskrnl/ntoskrnl-generic.rbuild