[FREELDR]: Headless/EMS support is an x86-specific feature (at least for now, until the code is made portable).

svn path=/trunk/; revision=49753
This commit is contained in:
Sir Richard 2010-11-23 17:25:37 +00:00
parent ba4d24ea04
commit 3cba3193a4
2 changed files with 8 additions and 4 deletions

View file

@ -75,7 +75,9 @@
<file>winldr.c</file> <file>winldr.c</file>
<file>wlmemory.c</file> <file>wlmemory.c</file>
<file>wlregistry.c</file> <file>wlregistry.c</file>
<file>headless.c</file> <if property="ARCH" value="i386">
<file>headless.c</file>
</if>
</directory> </directory>
<file>freeldr.c</file> <file>freeldr.c</file>
<file>debug.c</file> <file>debug.c</file>

View file

@ -204,6 +204,7 @@ WinLdrInitializePhase1(PLOADER_PARAMETER_BLOCK LoaderBlock,
Extension->AcpiTable = (PVOID)1; Extension->AcpiTable = (PVOID)1;
} }
#ifndef _M_ARM
/* Set headless block pointer */ /* Set headless block pointer */
extern HEADLESS_LOADER_BLOCK LoaderRedirectionInformation; extern HEADLESS_LOADER_BLOCK LoaderRedirectionInformation;
extern BOOLEAN WinLdrTerminalConnected; extern BOOLEAN WinLdrTerminalConnected;
@ -222,7 +223,7 @@ WinLdrInitializePhase1(PLOADER_PARAMETER_BLOCK LoaderBlock,
sizeof(HEADLESS_LOADER_BLOCK)); sizeof(HEADLESS_LOADER_BLOCK));
Extension->HeadlessLoaderBlock = PaToVa(Extension->HeadlessLoaderBlock); Extension->HeadlessLoaderBlock = PaToVa(Extension->HeadlessLoaderBlock);
} }
#endif
/* Load drivers database */ /* Load drivers database */
strcpy(MiscFiles, BootPath); strcpy(MiscFiles, BootPath);
strcat(MiscFiles, "AppPatch\\drvmain.sdb"); strcat(MiscFiles, "AppPatch\\drvmain.sdb");
@ -534,10 +535,11 @@ LoadAndBootWindows(PCSTR OperatingSystemName,
/* Allocate and minimalistic-initialize LPB */ /* Allocate and minimalistic-initialize LPB */
AllocateAndInitLPB(&LoaderBlock); AllocateAndInitLPB(&LoaderBlock);
#ifndef _M_ARM
/* Setup redirection support */ /* Setup redirection support */
extern void WinLdrSetupEms(IN PCHAR BootOptions); extern void WinLdrSetupEms(IN PCHAR BootOptions);
WinLdrSetupEms(BootOptions); WinLdrSetupEms(BootOptions);
#endif
/* Detect hardware */ /* Detect hardware */
UseRealHeap = TRUE; UseRealHeap = TRUE;
LoaderBlock->ConfigurationRoot = MachHwDetect(); LoaderBlock->ConfigurationRoot = MachHwDetect();
@ -622,7 +624,7 @@ LoadAndBootWindows(PCSTR OperatingSystemName,
/* Save final value of LoaderPagesSpanned */ /* Save final value of LoaderPagesSpanned */
LoaderBlockVA->Extension->LoaderPagesSpanned = LoaderPagesSpanned; LoaderBlockVA->Extension->LoaderPagesSpanned = LoaderPagesSpanned;
DPRINTM(DPRINT_WINDOWS, "Hello from paged mode, KiSystemStartup %p, LoaderBlockVA %p!\n", printf( "Hello from paged mode, KiSystemStartup %p, LoaderBlockVA %p!\n",
KiSystemStartup, LoaderBlockVA); KiSystemStartup, LoaderBlockVA);
WinLdrpDumpMemoryDescriptors(LoaderBlockVA); WinLdrpDumpMemoryDescriptors(LoaderBlockVA);