Author: hbelusca
Date: Fri Jun 2 00:52:36 2017
New Revision: 74743
URL:
http://svn.reactos.org/svn/reactos?rev=74743&view=rev
Log:
[FREELDR]: Split the "main" winldr.h header into the one containing global code
that actually doesn't really depend on the "windows" NT loader part, and one
that actually concerns code just for the NT Loader. The latter goes into ntldr.
Added:
branches/setup_improvements/boot/freeldr/freeldr/ntldr/winldr.h
- copied, changed from r74742,
branches/setup_improvements/boot/freeldr/freeldr/include/winldr.h
Modified:
branches/setup_improvements/boot/freeldr/freeldr/include/winldr.h
branches/setup_improvements/boot/freeldr/freeldr/ntldr/setupldr.c
branches/setup_improvements/boot/freeldr/freeldr/ntldr/winldr.c
branches/setup_improvements/boot/freeldr/freeldr/ntldr/wlmemory.c
branches/setup_improvements/boot/freeldr/freeldr/ntldr/wlregistry.c
Modified: branches/setup_improvements/boot/freeldr/freeldr/include/winldr.h
URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/boot/freeldr…
==============================================================================
--- branches/setup_improvements/boot/freeldr/freeldr/include/winldr.h [iso-8859-1]
(original)
+++ branches/setup_improvements/boot/freeldr/freeldr/include/winldr.h [iso-8859-1] Fri Jun
2 00:52:36 2017
@@ -22,20 +22,20 @@
#include <arc/setupblk.h>
+// See freeldr/ntldr/winldr.h
#define TAG_WLDR_DTE 'eDlW'
#define TAG_WLDR_BDE 'dBlW'
#define TAG_WLDR_NAME 'mNlW'
-/* Entry-point to kernel */
-typedef VOID (NTAPI *KERNEL_ENTRY_POINT) (PLOADER_PARAMETER_BLOCK LoaderBlock);
-
// Some definitions
+
+// FIXME: This one has nothing to do here!!
#define SECTOR_SIZE 512
// Descriptors
-#define NUM_GDT 128 // Must be 128
-#define NUM_IDT 0x100 // only 16 are used though. Must be 0x100
+#define NUM_GDT 128 // Must be 128
+#define NUM_IDT 0x100 // Only 16 are used though. Must be 0x100
#include <pshpack1.h>
typedef struct /* Root System Descriptor Pointer */
@@ -58,27 +58,6 @@
CHAR ArcName[MAX_PATH];
} ARC_DISK_SIGNATURE_EX, *PARC_DISK_SIGNATURE_EX;
-#define MAX_OPTIONS_LENGTH 255
-
-typedef struct _LOADER_SYSTEM_BLOCK
-{
- LOADER_PARAMETER_BLOCK LoaderBlock;
- LOADER_PARAMETER_EXTENSION Extension;
- SETUP_LOADER_BLOCK SetupBlock;
-#ifdef _M_IX86
- HEADLESS_LOADER_BLOCK HeadlessLoaderBlock;
-#endif
- NLS_DATA_BLOCK NlsDataBlock;
- CHAR LoadOptions[MAX_OPTIONS_LENGTH+1];
- CHAR ArcBootDeviceName[MAX_PATH+1];
- // CHAR ArcHalDeviceName[MAX_PATH];
- CHAR NtBootPathName[MAX_PATH+1];
- CHAR NtHalPathName[MAX_PATH+1];
- ARC_DISK_INFORMATION ArcDiskInformation;
-} LOADER_SYSTEM_BLOCK, *PLOADER_SYSTEM_BLOCK;
-
-extern PLOADER_SYSTEM_BLOCK WinLdrSystemBlock;
-
///////////////////////////////////////////////////////////////////////////////////////
//
// ReactOS Loading Functions
@@ -87,18 +66,22 @@
VOID LoadAndBootWindows(IN OperatingSystemItem* OperatingSystem,
IN USHORT OperatingSystemVersion);
-// conversion.c
+VOID
+LoadReactOSSetup(IN OperatingSystemItem* OperatingSystem,
+ IN USHORT OperatingSystemVersion);
+
+
+// conversion.c and conversion.h
PVOID VaToPa(PVOID Va);
PVOID PaToVa(PVOID Pa);
VOID List_PaToVa(_In_ LIST_ENTRY *ListEntry);
-VOID ConvertConfigToVA(PCONFIGURATION_COMPONENT_DATA Start);
+
// peloader.c
BOOLEAN
WinLdrLoadImage(IN PCHAR FileName,
TYPE_OF_MEMORY MemoryType,
OUT PVOID *ImageBasePA);
-
BOOLEAN
WinLdrAllocateDataTableEntry(IN OUT PLIST_ENTRY ModuleListHead,
@@ -112,54 +95,13 @@
IN PCCH DirectoryPath,
IN PLDR_DATA_TABLE_ENTRY ScanDTE);
-// winldr.c
-PVOID WinLdrLoadModule(PCSTR ModuleName, ULONG *Size,
- TYPE_OF_MEMORY MemoryType);
-
-// wlmemory.c
-BOOLEAN
-WinLdrSetupMemoryLayout(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock);
-
-// wlregistry.c
-BOOLEAN WinLdrInitSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock,
- IN LPCSTR DirectoryPath);
-
-BOOLEAN WinLdrScanSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock,
- IN LPCSTR DirectoryPath);
-
-
BOOLEAN
WinLdrCheckForLoadedDll(IN OUT PLIST_ENTRY ModuleListHead,
IN PCH DllName,
OUT PLDR_DATA_TABLE_ENTRY *LoadedEntry);
-VOID
-WinLdrInitializePhase1(PLOADER_PARAMETER_BLOCK LoaderBlock,
- LPCSTR Options,
- LPCSTR SystemPath,
- LPCSTR BootPath,
- USHORT VersionToBoot);
-BOOLEAN
-WinLdrLoadNLSData(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock,
- IN LPCSTR DirectoryPath,
- IN LPCSTR AnsiFileName,
- IN LPCSTR OemFileName,
- IN LPCSTR LanguageFileName);
-BOOLEAN
-WinLdrAddDriverToList(LIST_ENTRY *BootDriverListHead,
- LPWSTR RegistryPath,
- LPWSTR ImagePath,
- LPWSTR ServiceName);
-VOID
-WinLdrpDumpMemoryDescriptors(PLOADER_PARAMETER_BLOCK LoaderBlock);
-
-VOID
-WinLdrpDumpBootDriver(PLOADER_PARAMETER_BLOCK LoaderBlock);
-
-VOID
-WinLdrpDumpArcDisks(PLOADER_PARAMETER_BLOCK LoaderBlock);
-
+// arch/xxx/winldr.c
BOOLEAN
MempSetupPaging(IN PFN_NUMBER StartPage,
IN PFN_NUMBER NumberOfPages,
@@ -169,19 +111,7 @@
MempUnmapPage(PFN_NUMBER Page);
VOID
-MempDump();
-
-VOID
-LoadAndBootWindowsCommon(
- USHORT OperatingSystemVersion,
- PLOADER_PARAMETER_BLOCK LoaderBlock,
- LPCSTR BootOptions,
- LPCSTR BootPath,
- BOOLEAN Setup);
-
-VOID
-LoadReactOSSetup(IN OperatingSystemItem* OperatingSystem,
- IN USHORT OperatingSystemVersion);
+MempDump(VOID);
VOID
WinLdrSetupMachineDependent(PLOADER_PARAMETER_BLOCK LoaderBlock);
Modified: branches/setup_improvements/boot/freeldr/freeldr/ntldr/setupldr.c
URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/boot/freeldr…
==============================================================================
--- branches/setup_improvements/boot/freeldr/freeldr/ntldr/setupldr.c [iso-8859-1]
(original)
+++ branches/setup_improvements/boot/freeldr/freeldr/ntldr/setupldr.c [iso-8859-1] Fri Jun
2 00:52:36 2017
@@ -19,6 +19,7 @@
*/
#include <freeldr.h>
+#include "winldr.h"
#include <ndk/ldrtypes.h>
#include <arc/setupblk.h>
@@ -27,12 +28,6 @@
DBG_DEFAULT_CHANNEL(WINDOWS);
#define TAG_BOOT_OPTIONS 'pOtB'
-
-void
-WinLdrSetupMachineDependent(PLOADER_PARAMETER_BLOCK LoaderBlock);
-
-VOID
-WinLdrSetProcessorContext(void);
// TODO: Move to .h
VOID AllocateAndInitLPB(PLOADER_PARAMETER_BLOCK *OutLoaderBlock);
Modified: branches/setup_improvements/boot/freeldr/freeldr/ntldr/winldr.c
URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/boot/freeldr…
==============================================================================
--- branches/setup_improvements/boot/freeldr/freeldr/ntldr/winldr.c [iso-8859-1]
(original)
+++ branches/setup_improvements/boot/freeldr/freeldr/ntldr/winldr.c [iso-8859-1] Fri Jun
2 00:52:36 2017
@@ -20,6 +20,7 @@
*/
#include <freeldr.h>
+#include "winldr.h"
#include "registry.h"
#include <ndk/ldrtypes.h>
@@ -96,7 +97,7 @@
/* Construct SystemRoot and ArcBoot from SystemPath */
PathSeparator = strstr(BootPath, "\\") - BootPath;
strncpy(ArcBoot, BootPath, PathSeparator);
- ArcBoot[PathSeparator] = 0;
+ ArcBoot[PathSeparator] = ANSI_NULL;
TRACE("ArcBoot: %s\n", ArcBoot);
TRACE("SystemRoot: %s\n", SystemRoot);
@@ -249,7 +250,7 @@
{
// There is no directory in the path
strcpy(DllName, DriverPath);
- DriverPath[0] = 0;
+ DriverPath[0] = ANSI_NULL;
}
TRACE("DriverPath: %s, DllName: %s, LPB\n", DriverPath, DllName);
@@ -426,13 +427,13 @@
static
BOOLEAN
LoadModule(
- PLOADER_PARAMETER_BLOCK LoaderBlock,
- PCCH Path,
- PCCH File,
- TYPE_OF_MEMORY MemoryType,
- PLDR_DATA_TABLE_ENTRY *Dte,
- BOOLEAN IsKdTransportDll,
- ULONG Percentage)
+ IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock,
+ IN PCCH Path,
+ IN PCCH File,
+ IN PCCH ImportName, // BaseDllName
+ IN TYPE_OF_MEMORY MemoryType,
+ OUT PLDR_DATA_TABLE_ENTRY *Dte,
+ IN ULONG Percentage)
{
BOOLEAN Success;
CHAR FullFileName[MAX_PATH];
@@ -444,7 +445,6 @@
UiDrawProgressBarCenter(Percentage, 100, ProgressString);
strcpy(FullFileName, Path);
- strcat(FullFileName, "SYSTEM32\\");
strcat(FullFileName, File);
Success = WinLdrLoadImage(FullFileName, MemoryType, &BaseAddress);
@@ -455,15 +455,13 @@
}
TRACE("%s loaded successfully at %p\n", File, BaseAddress);
- strcpy(FullFileName, "WINDOWS\\SYSTEM32\\");
- strcat(FullFileName, File);
/*
* Cheat about the base DLL name if we are loading
* the Kernel Debugger Transport DLL, to make the
* PE loader happy.
*/
Success = WinLdrAllocateDataTableEntry(&LoaderBlock->LoadOrderListHead,
- (IsKdTransportDll ? "KDCOM.DLL" :
File),
+ ImportName,
FullFileName,
BaseAddress,
Dte);
@@ -475,22 +473,82 @@
BOOLEAN
LoadWindowsCore(IN USHORT OperatingSystemVersion,
IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock,
- IN LPCSTR BootOptions,
- IN LPCSTR BootPath,
+ IN PCSTR BootOptions,
+ IN PCSTR BootPath,
IN OUT PLDR_DATA_TABLE_ENTRY* KernelDTE)
{
BOOLEAN Success;
+ PCSTR Options;
CHAR DirPath[MAX_PATH];
+ CHAR KernelFileName[MAX_PATH];
+ CHAR HalFileName[MAX_PATH];
CHAR KdTransportDllName[MAX_PATH];
PLDR_DATA_TABLE_ENTRY HalDTE, KdComDTE = NULL;
if (!KernelDTE) return FALSE;
+ /* Initialize SystemRoot\System32 path */
+ strcpy(DirPath, BootPath);
+ strcat(DirPath, "SYSTEM32\\");
+
+ //
+ // TODO: Parse also the separate INI values "Kernel=" and "Hal="
+ //
+
+ /* Default KERNEL and HAL file names */
+ strcpy(KernelFileName, "NTOSKRNL.EXE");
+ strcpy(HalFileName , "HAL.DLL");
+
+ /* Find any /KERNEL= or /HAL= switch in the boot options */
+ Options = BootOptions;
+ while (Options)
+ {
+ /* Skip possible initial whitespace */
+ Options += strspn(Options, " \t");
+
+ /* Check whether a new commutator starts and it is either KERNEL or HAL */
+ if (*Options != '/' || (++Options,
+ !(_strnicmp(Options, "KERNEL=", 7) == 0 ||
+ _strnicmp(Options, "HAL=", 4) == 0)) )
+ {
+ /* Search for another whitespace */
+ Options = strpbrk(Options, " \t");
+ continue;
+ }
+ else
+ {
+ size_t i = strcspn(Options, " \t"); /* Skip whitespace */
+ if (i == 0)
+ {
+ /* Use the default values */
+ break;
+ }
+
+ /* We have found either KERNEL or HAL commutator */
+ if (_strnicmp(Options, "KERNEL=", 7) == 0)
+ {
+ Options += 7; i -= 7;
+ strncpy(KernelFileName, Options, i);
+ KernelFileName[i] = ANSI_NULL;
+ _strupr(KernelFileName);
+ }
+ else if (_strnicmp(Options, "HAL=", 4) == 0)
+ {
+ Options += 4; i -= 4;
+ strncpy(HalFileName, Options, i);
+ HalFileName[i] = ANSI_NULL;
+ _strupr(HalFileName);
+ }
+ }
+ }
+
+ TRACE("Kernel file = '%s' ; HAL file = '%s'\n",
KernelFileName, HalFileName);
+
/* Load the Kernel */
- LoadModule(LoaderBlock, BootPath, "NTOSKRNL.EXE", LoaderSystemCode,
KernelDTE, FALSE, 30);
+ LoadModule(LoaderBlock, DirPath, KernelFileName, "NTOSKRNL.EXE",
LoaderSystemCode, KernelDTE, 30);
/* Load the HAL */
- LoadModule(LoaderBlock, BootPath, "HAL.DLL", LoaderHalCode, &HalDTE,
FALSE, 45);
+ LoadModule(LoaderBlock, DirPath, HalFileName, "HAL.DLL", LoaderHalCode,
&HalDTE, 45);
/* Load the Kernel Debugger Transport DLL */
if (OperatingSystemVersion > _WIN32_WINNT_WIN2K)
@@ -525,27 +583,28 @@
* "...foo /DEBUGPORT= bar..."
* (in that case, we default the port to COM).
*/
- while (BootOptions)
+ Options = BootOptions;
+ while (Options)
{
/* Skip possible initial whitespace */
- BootOptions += strspn(BootOptions, " \t");
+ Options += strspn(Options, " \t");
/* Check whether a new commutator starts and it is the DEBUGPORT one */
- if (*BootOptions != '/' || _strnicmp(++BootOptions,
"DEBUGPORT=", 10) != 0)
+ if (*Options != '/' || _strnicmp(++Options, "DEBUGPORT=",
10) != 0)
{
/* Search for another whitespace */
- BootOptions = strpbrk(BootOptions, " \t");
+ Options = strpbrk(Options, " \t");
continue;
}
else
{
/* We found the DEBUGPORT commutator. Move to the port name. */
- BootOptions += 10;
+ Options += 10;
break;
}
}
- if (BootOptions)
+ if (Options)
{
/*
* We have found the DEBUGPORT commutator. Parse the port name.
@@ -553,33 +612,30 @@
* If we only have /DEBUGPORT= (i.e. without any port name), defaults it to
"COM".
*/
strcpy(KdTransportDllName, "KD");
- if (_strnicmp(BootOptions, "COM", 3) == 0 && '0'
<= BootOptions[3] && BootOptions[3] <= '9')
+ if (_strnicmp(Options, "COM", 3) == 0 && '0' <=
Options[3] && Options[3] <= '9')
{
- strncat(KdTransportDllName, BootOptions, 3);
+ strncat(KdTransportDllName, Options, 3);
}
else
{
- size_t i = strcspn(BootOptions, " \t:"); /* Skip valid
separators: whitespace or colon */
+ size_t i = strcspn(Options, " \t:"); /* Skip valid separators:
whitespace or colon */
if (i == 0)
strcat(KdTransportDllName, "COM");
else
- strncat(KdTransportDllName, BootOptions, i);
+ strncat(KdTransportDllName, Options, i);
}
strcat(KdTransportDllName, ".DLL");
_strupr(KdTransportDllName);
/*
- * Load the transport DLL. Specify it to LoadModule so that it can
- * change the base DLL name of the loaded transport DLL to the default
- * "KDCOM.DLL" name, to make the PE loader happy.
+ * Load the transport DLL. Override the base DLL name of the
+ * loaded transport DLL to the default "KDCOM.DLL" name.
*/
- LoadModule(LoaderBlock, BootPath, KdTransportDllName, LoaderSystemCode,
&KdComDTE, TRUE, 60);
+ LoadModule(LoaderBlock, DirPath, KdTransportDllName, "KDCOM.DLL",
LoaderSystemCode, &KdComDTE, 60);
}
}
/* Load all referenced DLLs for Kernel, HAL and Kernel Debugger Transport DLL */
- strcpy(DirPath, BootPath);
- strcat(DirPath, "system32\\");
Success = WinLdrScanImportDescriptorTable(&LoaderBlock->LoadOrderListHead,
DirPath, *KernelDTE);
Success &=
WinLdrScanImportDescriptorTable(&LoaderBlock->LoadOrderListHead, DirPath, HalDTE);
if (KdComDTE)
@@ -691,7 +747,7 @@
/* Allocate and minimalist-initialize LPB */
AllocateAndInitLPB(&LoaderBlock);
- /* Load Hive */
+ /* Load the system hive */
UiDrawBackdrop();
UiDrawProgressBarCenter(15, 100, "Loading system hive...");
Success = WinLdrInitSystemHive(LoaderBlock, BootPath);
Copied: branches/setup_improvements/boot/freeldr/freeldr/ntldr/winldr.h (from r74742,
branches/setup_improvements/boot/freeldr/freeldr/include/winldr.h)
URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/boot/freeldr…
==============================================================================
--- branches/setup_improvements/boot/freeldr/freeldr/include/winldr.h [iso-8859-1]
(original)
+++ branches/setup_improvements/boot/freeldr/freeldr/ntldr/winldr.h [iso-8859-1] Fri Jun
2 00:52:36 2017
@@ -22,20 +22,25 @@
#include <arc/setupblk.h>
+#if 0
+// See freeldr/include/winldr.h
#define TAG_WLDR_DTE 'eDlW'
#define TAG_WLDR_BDE 'dBlW'
#define TAG_WLDR_NAME 'mNlW'
+
+#endif
/* Entry-point to kernel */
typedef VOID (NTAPI *KERNEL_ENTRY_POINT) (PLOADER_PARAMETER_BLOCK LoaderBlock);
// Some definitions
-#define SECTOR_SIZE 512
+
+#if 0
// Descriptors
-#define NUM_GDT 128 // Must be 128
-#define NUM_IDT 0x100 // only 16 are used though. Must be 0x100
+#define NUM_GDT 128 // Must be 128
+#define NUM_IDT 0x100 // Only 16 are used though. Must be 0x100
#include <pshpack1.h>
typedef struct /* Root System Descriptor Pointer */
@@ -58,6 +63,8 @@
CHAR ArcName[MAX_PATH];
} ARC_DISK_SIGNATURE_EX, *PARC_DISK_SIGNATURE_EX;
+#endif
+
#define MAX_OPTIONS_LENGTH 255
typedef struct _LOADER_SYSTEM_BLOCK
@@ -79,38 +86,15 @@
extern PLOADER_SYSTEM_BLOCK WinLdrSystemBlock;
-///////////////////////////////////////////////////////////////////////////////////////
-//
-// ReactOS Loading Functions
-//
-///////////////////////////////////////////////////////////////////////////////////////
-VOID LoadAndBootWindows(IN OperatingSystemItem* OperatingSystem,
- IN USHORT OperatingSystemVersion);
// conversion.c
+#if 0
PVOID VaToPa(PVOID Va);
PVOID PaToVa(PVOID Pa);
VOID List_PaToVa(_In_ LIST_ENTRY *ListEntry);
+#endif
VOID ConvertConfigToVA(PCONFIGURATION_COMPONENT_DATA Start);
-// peloader.c
-BOOLEAN
-WinLdrLoadImage(IN PCHAR FileName,
- TYPE_OF_MEMORY MemoryType,
- OUT PVOID *ImageBasePA);
-
-
-BOOLEAN
-WinLdrAllocateDataTableEntry(IN OUT PLIST_ENTRY ModuleListHead,
- IN PCCH BaseDllName,
- IN PCCH FullDllName,
- IN PVOID BasePA,
- OUT PLDR_DATA_TABLE_ENTRY *NewEntry);
-
-BOOLEAN
-WinLdrScanImportDescriptorTable(IN OUT PLIST_ENTRY ModuleListHead,
- IN PCCH DirectoryPath,
- IN PLDR_DATA_TABLE_ENTRY ScanDTE);
// winldr.c
PVOID WinLdrLoadModule(PCSTR ModuleName, ULONG *Size,
@@ -121,18 +105,16 @@
WinLdrSetupMemoryLayout(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock);
// wlregistry.c
-BOOLEAN WinLdrInitSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock,
- IN LPCSTR DirectoryPath);
+BOOLEAN
+WinLdrInitSystemHive(
+ IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock,
+ IN PCSTR SystemRoot,
+ IN BOOLEAN Setup);
BOOLEAN WinLdrScanSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock,
IN LPCSTR DirectoryPath);
-
-BOOLEAN
-WinLdrCheckForLoadedDll(IN OUT PLIST_ENTRY ModuleListHead,
- IN PCH DllName,
- OUT PLDR_DATA_TABLE_ENTRY *LoadedEntry);
-
+// winldr.c
VOID
WinLdrInitializePhase1(PLOADER_PARAMETER_BLOCK LoaderBlock,
LPCSTR Options,
@@ -160,17 +142,6 @@
VOID
WinLdrpDumpArcDisks(PLOADER_PARAMETER_BLOCK LoaderBlock);
-BOOLEAN
-MempSetupPaging(IN PFN_NUMBER StartPage,
- IN PFN_NUMBER NumberOfPages,
- IN BOOLEAN KernelMapping);
-
-VOID
-MempUnmapPage(PFN_NUMBER Page);
-
-VOID
-MempDump();
-
VOID
LoadAndBootWindowsCommon(
USHORT OperatingSystemVersion,
@@ -178,13 +149,3 @@
LPCSTR BootOptions,
LPCSTR BootPath,
BOOLEAN Setup);
-
-VOID
-LoadReactOSSetup(IN OperatingSystemItem* OperatingSystem,
- IN USHORT OperatingSystemVersion);
-
-VOID
-WinLdrSetupMachineDependent(PLOADER_PARAMETER_BLOCK LoaderBlock);
-
-VOID
-WinLdrSetProcessorContext(VOID);
Modified: branches/setup_improvements/boot/freeldr/freeldr/ntldr/wlmemory.c
URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/boot/freeldr…
==============================================================================
--- branches/setup_improvements/boot/freeldr/freeldr/ntldr/wlmemory.c [iso-8859-1]
(original)
+++ branches/setup_improvements/boot/freeldr/freeldr/ntldr/wlmemory.c [iso-8859-1] Fri Jun
2 00:52:36 2017
@@ -9,6 +9,7 @@
/* INCLUDES ***************************************************************/
#include <freeldr.h>
+#include "winldr.h"
#include <debug.h>
Modified: branches/setup_improvements/boot/freeldr/freeldr/ntldr/wlregistry.c
URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/boot/freeldr…
==============================================================================
--- branches/setup_improvements/boot/freeldr/freeldr/ntldr/wlregistry.c [iso-8859-1]
(original)
+++ branches/setup_improvements/boot/freeldr/freeldr/ntldr/wlregistry.c [iso-8859-1] Fri
Jun 2 00:52:36 2017
@@ -9,6 +9,7 @@
/* INCLUDES ***************************************************************/
#include <freeldr.h>
+#include "winldr.h"
#include "registry.h"
#include <debug.h>