[FREELDR]
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Wed, 3 Feb 2016 15:20:37 +0000 (15:20 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Wed, 3 Feb 2016 15:20:37 +0000 (15:20 +0000)
- Move the NTOS loader files that were scattered in many places into their own directory (now all that stuff is inside freeldr/windows).
- Split arch/arm/winldr.c into the real winldr code (going into freeldr/windows) and entry point code (going into arch/arm/entry.c).

svn path=/trunk/; revision=70683

reactos/boot/freeldr/freeldr/CMakeLists.txt
reactos/boot/freeldr/freeldr/arch/arm/entry.c [new file with mode: 0644]
reactos/boot/freeldr/freeldr/arch/arm/macharm.c
reactos/boot/freeldr/freeldr/include/freeldr.h
reactos/boot/freeldr/freeldr/include/winldr.h
reactos/boot/freeldr/freeldr/windows/arch/amd64/winldr.c [moved from reactos/boot/freeldr/freeldr/arch/amd64/winldr.c with 99% similarity]
reactos/boot/freeldr/freeldr/windows/arch/arm/winldr.c [moved from reactos/boot/freeldr/freeldr/arch/arm/winldr.c with 97% similarity]
reactos/boot/freeldr/freeldr/windows/arch/i386/halstub.c [moved from reactos/boot/freeldr/freeldr/arch/i386/halstub.c with 99% similarity]
reactos/boot/freeldr/freeldr/windows/arch/i386/ntoskrnl.c [moved from reactos/boot/freeldr/freeldr/arch/i386/ntoskrnl.c with 99% similarity]
reactos/boot/freeldr/freeldr/windows/arch/i386/ntoskrnl.h [moved from reactos/boot/freeldr/freeldr/include/ntoskrnl.h with 100% similarity]
reactos/boot/freeldr/freeldr/windows/arch/i386/winldr.c [moved from reactos/boot/freeldr/freeldr/arch/i386/winldr.c with 99% similarity]

index 5dfa295..3a219e2 100644 (file)
@@ -91,7 +91,6 @@ if(ARCH STREQUAL "i386")
         fs/pxe.c
         arch/i386/archmach.c
         arch/i386/drivemap.c
-        arch/i386/halstub.c
         arch/i386/hardware.c
         arch/i386/hwacpi.c
         arch/i386/hwapm.c
@@ -103,7 +102,6 @@ if(ARCH STREQUAL "i386")
         arch/i386/i386rtl.c
         arch/i386/i386vid.c
         arch/i386/machpc.c
-        arch/i386/ntoskrnl.c
         arch/i386/pccons.c
         arch/i386/pcdisk.c
         arch/i386/pcmem.c
@@ -118,7 +116,9 @@ if(ARCH STREQUAL "i386")
         arch/i386/xboxmem.c
         arch/i386/xboxrtc.c
         arch/i386/xboxvideo.c
-        arch/i386/winldr.c
+        windows/arch/i386/halstub.c
+        windows/arch/i386/ntoskrnl.c
+        windows/arch/i386/winldr.c
         windows/headless.c
         disk/scsiport.c)
     if(NOT MSVC)
@@ -142,19 +142,20 @@ elseif(ARCH STREQUAL "amd64")
         arch/i386/i386disk.c
         arch/i386/i386vid.c
         arch/i386/machpc.c
-        arch/i386/ntoskrnl.c
         arch/i386/pccons.c
         arch/i386/pcdisk.c
         arch/i386/pcmem.c
         arch/i386/pcrtc.c
         arch/i386/pcvideo.c
-        arch/amd64/winldr.c)
+        windows/arch/i386/ntoskrnl.c
+        windows/arch/amd64/winldr.c)
 elseif(ARCH STREQUAL "arm")
     list(APPEND FREELDR_COMMON_ASM_SOURCE
         arch/arm/boot.S)
     list(APPEND FREELDR_COMMON_SOURCE
+        arch/arm/entry.c
         arch/arm/macharm.c
-        arch/arm/winldr.c)
+        windows/arch/arm/winldr.c)
 else()
 #TBD
 endif()
@@ -193,7 +194,7 @@ if(MSVC)
         add_target_link_flags(freeldr_pe "/ignore:4078 /ignore:4254 /DRIVER")
         add_target_link_flags(freeldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER")
     else()
-        add_target_link_flags(freeldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text ")
+        add_target_link_flags(freeldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text")
         add_target_link_flags(freeldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text")
     endif()
 else()
diff --git a/reactos/boot/freeldr/freeldr/arch/arm/entry.c b/reactos/boot/freeldr/freeldr/arch/arm/entry.c
new file mode 100644 (file)
index 0000000..4f5a015
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * PROJECT:         ReactOS Boot Loader
+ * LICENSE:         BSD - See COPYING.ARM in the top level directory
+ * FILE:            boot/freeldr/freeldr/arch/arm/entry.c
+ * PURPOSE:         Implements the entry point for ARM machines (see also boot.S)
+ * PROGRAMMERS:     ReactOS Portable Systems Group
+ */
+
+/* INCLUDES ***************************************************************/
+
+#include <freeldr.h>
+#include <debug.h>
+
+/* FUNCTIONS **************************************************************/
+
+VOID
+RealEntryPoint(VOID)
+{
+    BootMain("");
+}
+
+VOID
+FrLdrBugCheckWithMessage(
+    ULONG BugCode,
+    PCHAR File,
+    ULONG Line,
+    PSTR Format,
+    ...)
+{
+
+}
index 1b0dde8..f9c0c8d 100644 (file)
@@ -61,6 +61,10 @@ ULONG LenBits[] =
 
 /* FUNCTIONS ******************************************************************/
 
+VOID DiskStopFloppyMotor(VOID)
+{
+}
+
 VOID
 FrLdrCheckCpuCompatiblity(VOID)
 {
index 0bdc998..47eb116 100644 (file)
@@ -79,6 +79,8 @@
 #include <ui.h>
 #include <ver.h>
 #include <video.h>
+
+/* NTOS loader */
 #include <winldr.h>
 
 /* File system headers */
index c85a7ef..f5b3a88 100644 (file)
@@ -160,9 +160,6 @@ WinLdrpDumpBootDriver(PLOADER_PARAMETER_BLOCK LoaderBlock);
 VOID
 WinLdrpDumpArcDisks(PLOADER_PARAMETER_BLOCK LoaderBlock);
 
-BOOLEAN
-MempAllocatePageTables();
-
 BOOLEAN
 MempSetupPaging(IN PFN_NUMBER StartPage,
                 IN PFN_NUMBER NumberOfPages,
@@ -28,6 +28,7 @@ ULONG_PTR TssBasePage;
 
 /* FUNCTIONS **************************************************************/
 
+static
 BOOLEAN
 MempAllocatePageTables(VOID)
 {
@@ -60,6 +61,7 @@ MempAllocatePageTables(VOID)
     return TRUE;
 }
 
+static
 PHARDWARE_PTE
 MempGetOrCreatePageDir(PHARDWARE_PTE PdeBase, ULONG Index)
 {
@@ -85,6 +87,7 @@ MempGetOrCreatePageDir(PHARDWARE_PTE PdeBase, ULONG Index)
     return SubDir;
 }
 
+static
 BOOLEAN
 MempMapSinglePage(ULONG64 VirtualAddress, ULONG64 PhysicalAddress)
 {
@@ -143,6 +146,7 @@ MempIsPageMapped(PVOID VirtualAddress)
     return TRUE;
 }
 
+static
 PFN_NUMBER
 MempMapRangeOfPages(ULONG64 VirtualAddress, ULONG64 PhysicalAddress, PFN_NUMBER cPages)
 {
@@ -202,6 +206,7 @@ MempUnmapPage(PFN_NUMBER Page)
    // TRACE(">>> MempUnmapPage\n");
 }
 
+static
 VOID
 WinLdrpMapApic(VOID)
 {
@@ -234,6 +239,7 @@ WinLdrpMapApic(VOID)
     MempMapSinglePage(APIC_BASE, APICAddress);
 }
 
+static
 BOOLEAN
 WinLdrMapSpecialPages(VOID)
 {
@@ -265,6 +271,7 @@ WinLdrMapSpecialPages(VOID)
     return TRUE;
 }
 
+static
 VOID
 Amd64SetupGdt(PVOID GdtBase, ULONG64 TssBase)
 {
@@ -313,6 +320,7 @@ Amd64SetupGdt(PVOID GdtBase, ULONG64 TssBase)
     TRACE("Leave Amd64SetupGdt()\n");
 }
 
+static
 VOID
 Amd64SetupIdt(PVOID IdtBase)
 {
@@ -421,4 +429,3 @@ VOID
 MempDump(VOID)
 {
 }
-
@@ -99,6 +99,7 @@ MempDump(VOID)
     return;
 }
 
+static
 BOOLEAN
 WinLdrMapSpecialPages(ULONG PcrBasePage)
 {
@@ -191,6 +192,7 @@ WinLdrSetupForNt(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
     LoaderBlock->Thread = (ULONG_PTR)PdrPage->InitialThread;
 }
 
+static
 BOOLEAN
 MempAllocatePageTables(VOID)
 {
@@ -277,24 +279,3 @@ WinLdrSetupMachineDependent(
     PLOADER_PARAMETER_BLOCK LoaderBlock)
 {
 }
-
-VOID DiskStopFloppyMotor(VOID)
-{
-}
-
-VOID
-RealEntryPoint(VOID)
-{
-    BootMain("");
-}
-
-VOID
-FrLdrBugCheckWithMessage(
-    ULONG BugCode,
-    PCHAR File,
-    ULONG Line,
-    PSTR Format,
-    ...)
-{
-
-}
@@ -8,7 +8,7 @@
 
 /* INCLUDES ******************************************************************/
 
-#include <ntoskrnl.h>
+#include "ntoskrnl.h"
 #define NDEBUG
 #include <debug.h>
 
@@ -8,7 +8,7 @@
 
 /* INCLUDES ******************************************************************/
 
-#include <ntoskrnl.h>
+#include "ntoskrnl.h"
 
 /* For KeStallExecutionProcessor */
 #if defined(_M_IX86) || defined(_M_AMD64)
@@ -46,6 +46,7 @@ PVOID GdtIdt;
 
 /* FUNCTIONS **************************************************************/
 
+static
 BOOLEAN
 MempAllocatePageTables(VOID)
 {
@@ -115,6 +116,7 @@ MempAllocatePageTables(VOID)
     return TRUE;
 }
 
+static
 VOID
 MempAllocatePTE(ULONG Entry, PHARDWARE_PTE *PhysicalPT, PHARDWARE_PTE *KernelPT)
 {
@@ -144,8 +146,8 @@ MempAllocatePTE(ULONG Entry, PHARDWARE_PTE *PhysicalPT, PHARDWARE_PTE *KernelPT)
 
 BOOLEAN
 MempSetupPaging(IN PFN_NUMBER StartPage,
-        IN PFN_COUNT NumberOfPages,
-        IN BOOLEAN KernelMapping)
+                IN PFN_COUNT NumberOfPages,
+                IN BOOLEAN KernelMapping)
 {
     PHARDWARE_PTE PhysicalPT;
     PHARDWARE_PTE KernelPT;
@@ -221,6 +223,7 @@ MempUnmapPage(PFN_NUMBER Page)
     }
 }
 
+static
 VOID
 WinLdrpMapApic(VOID)
 {
@@ -252,6 +255,7 @@ WinLdrpMapApic(VOID)
     HalPageTable[(APIC_BASE - 0xFFC00000) >> MM_PAGE_SHIFT].CacheDisable = 1;
 }
 
+static
 BOOLEAN
 WinLdrMapSpecialPages(void)
 {
@@ -297,6 +301,7 @@ enum
     UltraVision_8x10Font = 0x12,
 };
 
+static
 void WinLdrSetupSpecialDataPointers(VOID)
 {
     REGS BiosRegs;
@@ -690,4 +695,3 @@ MempDump(VOID)
     }
 }
 #endif
-