- Remove some crap from the LoadAndBootWindows()
authorAleksey Bragin <aleksey@reactos.org>
Wed, 4 Oct 2006 21:11:16 +0000 (21:11 +0000)
committerAleksey Bragin <aleksey@reactos.org>
Wed, 4 Oct 2006 21:11:16 +0000 (21:11 +0000)
- 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

svn path=/trunk/; revision=24401

reactos/boot/freeldr/freeldr/windows/winldr.c

index 89dae9c..c247156 100644 (file)
@@ -21,7 +21,9 @@
 \r
 #include <freeldr.h>\r
 \r
-#define NDEBUG\r
+#include <ndk/ldrtypes.h>\r
+\r
+//#define NDEBUG\r
 #include <debug.h>\r
 \r
 VOID DumpMemoryAllocMap(VOID);\r
@@ -442,7 +444,6 @@ void WinLdrSetupForNt(PLOADER_PARAMETER_BLOCK LoaderBlock,
        RtlZeroMemory(*GdtIdt, NumPages << MM_PAGE_SHIFT);\r
 }\r
 \r
-\r
 VOID\r
 LoadAndBootWindows(PCSTR OperatingSystemName, WORD OperatingSystemVersion)\r
 {\r
@@ -454,14 +455,17 @@ LoadAndBootWindows(PCSTR OperatingSystemName, WORD OperatingSystemVersion)
        BOOLEAN Status;\r
        ULONG SectionId;\r
        ULONG BootDevice;\r
-       PLOADER_PARAMETER_BLOCK LoaderBlock=NULL, LoaderBlockVA;\r
-       PLDR_DATA_TABLE_ENTRY KernelDTE, HalDTE;\r
+       PLOADER_PARAMETER_BLOCK LoaderBlock, LoaderBlockVA;\r
        KERNEL_ENTRY_POINT KiSystemStartup;\r
+       PLDR_DATA_TABLE_ENTRY KernelDTE, HalDTE;\r
+       PIMAGE_NT_HEADERS NtosHeader;\r
        // Mm-related things\r
-       PVOID GdtIdt=NULL;\r
+       PVOID GdtIdt;\r
        ULONG PcrBasePage=0;\r
        ULONG TssBasePage=0;\r
 \r
+\r
+\r
        //sprintf(MsgBuffer,"Booting Microsoft(R) Windows(R) OS version '%04x' is not implemented yet", OperatingSystemVersion);\r
        //UiMessageBox(MsgBuffer);\r
 \r
@@ -562,6 +566,7 @@ LoadAndBootWindows(PCSTR OperatingSystemName, WORD OperatingSystemVersion)
 \r
        /* Save entry-point pointer (VA) */\r
        KiSystemStartup = (KERNEL_ENTRY_POINT)KernelDTE->EntryPoint;\r
+\r
        LoaderBlockVA = PaToVa(LoaderBlock);\r
 \r
        /* Debugging... */\r
@@ -575,23 +580,17 @@ LoadAndBootWindows(PCSTR OperatingSystemName, WORD OperatingSystemVersion)
 \r
        WinLdrpDumpMemoryDescriptors(LoaderBlockVA);\r
 \r
-       /*__asm\r
-       {\r
-               or esp, KSEG0_BASE;\r
-               or ebp, KSEG0_BASE;\r
-       }*/\r
-\r
-       /*\r
-       {\r
-               ULONG *trrr = (ULONG *)(512*1024*1024);\r
+       // temp: offset C9000\r
 \r
-               *trrr = 0x13131414;\r
-       }\r
+       //FIXME: If I substitute this debugging checkpoint, GCC will "optimize away" the code below\r
+       //while (1) {};\r
+       asm(".intel_syntax noprefix\n");\r
+               asm("test1:\n");\r
+               asm("jmp test1\n");\r
+       asm(".att_syntax\n");\r
 \r
-       //FIXME!\r
-       while (1) {};*/\r
 \r
-       (KiSystemStartup)(LoaderBlockVA);\r
+       (*KiSystemStartup)(LoaderBlockVA);\r
 \r
        return;\r
 }\r