[ros-diffs] [fireball] 40156: - Allocate and initialize setup loader block. - Add setup loader block pointer conversion to WinLdrInitializePhase1 (if it exists). - Temporary: provide empty boot options string.
fireball at svn.reactos.org
fireball at svn.reactos.org
Sat Mar 21 12:11:45 CET 2009
- Previous message: [ros-diffs] [sserapion] 40155: Remove wine/msacm.h it just duplicated the one with have in psdk/ but with extra incorrect definitions. Fix ACMDRVSTREAMINSTANCE, ACMDRVSTREAMHEADER, PORTALLOC, WAVEOPENDESC, MIDIOPENDESC, MIXEROPENDESC structures. Fix ACMFILTERENUMCBA/W, ACMFILTERTAGENUMCBA/W, ACMFORMATENUMCA/W, ACMFORMATTAGENUMCBA/W callbacks. Fix acmDriverEnum, acmFilterEnumA/W, acmFormatEnumA/W, acmFormatTagEnumA/W, acmStreamOpen, CloseDriver, OpenDriver, SendDriverMessage, mmTaskSignal, mmGetCurrentTask
- Next message: [ros-diffs] [cfinck] 40157: Enable the Crash Recovery feature when doing the RegTest. Now the new sysreg2 just needs to be set up on the Buildslave and we might finally be able to remove all those "Skip Test xyz, because ROS sucks" hacks.
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: fireball
Date: Sat Mar 21 14:11:44 2009
New Revision: 40156
URL: http://svn.reactos.org/svn/reactos?rev=40156&view=rev
Log:
- Allocate and initialize setup loader block.
- Add setup loader block pointer conversion to WinLdrInitializePhase1 (if it exists).
- Temporary: provide empty boot options string.
Modified:
trunk/reactos/boot/freeldr/freeldr/windows/setupldr2.c
trunk/reactos/boot/freeldr/freeldr/windows/winldr.c
Modified: trunk/reactos/boot/freeldr/freeldr/windows/setupldr2.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/windows/setupldr2.c?rev=40156&r1=40155&r2=40156&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/windows/setupldr2.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/windows/setupldr2.c [iso-8859-1] Sat Mar 21 14:11:44 2009
@@ -21,6 +21,8 @@
#include <freeldr.h>
#include <ndk/ldrtypes.h>
+#include <arc/setupblk.h>
+
#include <debug.h>
// TODO: Move to .h
@@ -155,6 +157,7 @@
CHAR SystemPath[512], SearchPath[512];
CHAR FileName[512];
CHAR BootPath[512];
+ CHAR LoadOptions[512];
LPCSTR BootOptions;
PVOID NtosBase = NULL, HalBase = NULL, KdComBase = NULL;
BOOLEAN Status;
@@ -163,6 +166,7 @@
HINF InfHandle;
INFCONTEXT InfContext;
PLOADER_PARAMETER_BLOCK LoaderBlock, LoaderBlockVA;
+ PSETUP_LOADER_BLOCK SetupBlock;
KERNEL_ENTRY_POINT KiSystemStartup;
PLDR_DATA_TABLE_ENTRY KernelDTE, HalDTE, KdComDTE = NULL;
// Mm-related things
@@ -249,6 +253,14 @@
/* Allocate and minimalistic-initialize LPB */
AllocateAndInitLPB(&LoaderBlock);
+ /* Allocate and initialize setup loader block */
+ SetupBlock = MmHeapAlloc(sizeof(SETUP_LOADER_BLOCK));
+ RtlZeroMemory(SetupBlock, sizeof(SETUP_LOADER_BLOCK));
+ LoaderBlock->SetupLdrBlock = SetupBlock;
+
+ /* Set textmode setup flag */
+ SetupBlock->Flags = SETUPLDR_TEXT_MODE;
+
/* Detect hardware */
UseRealHeap = TRUE;
LoaderBlock->ConfigurationRoot = MachHwDetect();
@@ -300,7 +312,8 @@
WinLdrSetupForNt(LoaderBlock, &GdtIdt, &PcrBasePage, &TssBasePage);
/* Initialize Phase 1 - no drivers loading anymore */
- WinLdrInitializePhase1(LoaderBlock, (PCHAR)BootOptions, SystemPath, BootPath, _WIN32_WINNT_WS03);
+ LoadOptions[0] = 0;
+ WinLdrInitializePhase1(LoaderBlock, LoadOptions, SystemPath, BootPath, _WIN32_WINNT_WS03);
/* Save entry-point pointer and Loader block VAs */
KiSystemStartup = (KERNEL_ENTRY_POINT)KernelDTE->EntryPoint;
@@ -325,6 +338,11 @@
//WinLdrpDumpBootDriver(LoaderBlockVA);
//WinLdrpDumpArcDisks(LoaderBlockVA);
+ /*asm(".intel_syntax noprefix\n");
+ asm("test1:\n");
+ asm("jmp test1\n");
+ asm(".att_syntax\n");*/
+
/* Pass control */
(*KiSystemStartup)(LoaderBlockVA);
Modified: trunk/reactos/boot/freeldr/freeldr/windows/winldr.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/windows/winldr.c?rev=40156&r1=40155&r2=40156&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/windows/winldr.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/windows/winldr.c [iso-8859-1] Sat Mar 21 14:11:44 2009
@@ -201,7 +201,11 @@
Extension->DrvDBImage = PaToVa(WinLdrLoadModule(MiscFiles,
&Extension->DrvDBSize, LoaderRegistryData));
+ /* Convert extension and setup block pointers */
LoaderBlock->Extension = PaToVa(Extension);
+
+ if (LoaderBlock->SetupLdrBlock)
+ LoaderBlock->SetupLdrBlock = PaToVa(LoaderBlock->SetupLdrBlock);
}
// Last step before going virtual
- Previous message: [ros-diffs] [sserapion] 40155: Remove wine/msacm.h it just duplicated the one with have in psdk/ but with extra incorrect definitions. Fix ACMDRVSTREAMINSTANCE, ACMDRVSTREAMHEADER, PORTALLOC, WAVEOPENDESC, MIDIOPENDESC, MIXEROPENDESC structures. Fix ACMFILTERENUMCBA/W, ACMFILTERTAGENUMCBA/W, ACMFORMATENUMCA/W, ACMFORMATTAGENUMCBA/W callbacks. Fix acmDriverEnum, acmFilterEnumA/W, acmFormatEnumA/W, acmFormatTagEnumA/W, acmStreamOpen, CloseDriver, OpenDriver, SendDriverMessage, mmTaskSignal, mmGetCurrentTask
- Next message: [ros-diffs] [cfinck] 40157: Enable the Crash Recovery feature when doing the RegTest. Now the new sysreg2 just needs to be set up on the Buildslave and we might finally be able to remove all those "Skip Test xyz, because ROS sucks" hacks.
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Ros-diffs
mailing list