Author: fireball Date: Thu Oct 5 01:11:16 2006 New Revision: 24401
URL: http://svn.reactos.org/svn/reactos?rev=24401&view=rev Log: - Remove some crap from the LoadAndBootWindows() - Change debugging checkpoint to online-asm (all this is temporary), since any code after while(1){}; seems to be just optimized away by gcc - Uncomment NDEBUG for now
Modified: trunk/reactos/boot/freeldr/freeldr/windows/winldr.c
Modified: trunk/reactos/boot/freeldr/freeldr/windows/winldr.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/window... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/windows/winldr.c (original) +++ trunk/reactos/boot/freeldr/freeldr/windows/winldr.c Thu Oct 5 01:11:16 2006 @@ -21,7 +21,9 @@
#include <freeldr.h>
-#define NDEBUG +#include <ndk/ldrtypes.h> + +//#define NDEBUG #include <debug.h>
VOID DumpMemoryAllocMap(VOID); @@ -442,7 +444,6 @@ RtlZeroMemory(*GdtIdt, NumPages << MM_PAGE_SHIFT); }
- VOID LoadAndBootWindows(PCSTR OperatingSystemName, WORD OperatingSystemVersion) { @@ -454,13 +455,16 @@ BOOLEAN Status; ULONG SectionId; ULONG BootDevice; - PLOADER_PARAMETER_BLOCK LoaderBlock=NULL, LoaderBlockVA; + PLOADER_PARAMETER_BLOCK LoaderBlock, LoaderBlockVA; + KERNEL_ENTRY_POINT KiSystemStartup; PLDR_DATA_TABLE_ENTRY KernelDTE, HalDTE; - KERNEL_ENTRY_POINT KiSystemStartup; + PIMAGE_NT_HEADERS NtosHeader; // Mm-related things - PVOID GdtIdt=NULL; + PVOID GdtIdt; ULONG PcrBasePage=0; ULONG TssBasePage=0; + +
//sprintf(MsgBuffer,"Booting Microsoft(R) Windows(R) OS version '%04x' is not implemented yet", OperatingSystemVersion); //UiMessageBox(MsgBuffer); @@ -562,6 +566,7 @@
/* Save entry-point pointer (VA) */ KiSystemStartup = (KERNEL_ENTRY_POINT)KernelDTE->EntryPoint; + LoaderBlockVA = PaToVa(LoaderBlock);
/* Debugging... */ @@ -575,23 +580,17 @@
WinLdrpDumpMemoryDescriptors(LoaderBlockVA);
- /*__asm - { - or esp, KSEG0_BASE; - or ebp, KSEG0_BASE; - }*/ - - /* - { - ULONG *trrr = (ULONG *)(512*1024*1024); - - *trrr = 0x13131414; - } - - //FIXME! - while (1) {};*/ - - (KiSystemStartup)(LoaderBlockVA); + // temp: offset C9000 + + //FIXME: If I substitute this debugging checkpoint, GCC will "optimize away" the code below + //while (1) {}; + asm(".intel_syntax noprefix\n"); + asm("test1:\n"); + asm("jmp test1\n"); + asm(".att_syntax\n"); + + + (*KiSystemStartup)(LoaderBlockVA);
return; }