mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 07:53:07 +00:00
- Do MmInit1 in KiInitializeKernel so we can access SharedUserData from it (we'll need to setup the CPU Features there).
- Cleanup some external/prototype mess and put them nicely into headers. svn path=/trunk/; revision=24351
This commit is contained in:
parent
3d9d36ccff
commit
2855e1f08f
5 changed files with 28 additions and 61 deletions
|
@ -24,35 +24,18 @@ ULONG NtOSCSDVersion = BUILD_OSCSDVERSION(4, 0);
|
||||||
ULONG NtBuildNumber = KERNEL_VERSION_BUILD;
|
ULONG NtBuildNumber = KERNEL_VERSION_BUILD;
|
||||||
ULONG NtGlobalFlag = 0;
|
ULONG NtGlobalFlag = 0;
|
||||||
|
|
||||||
ULONG InitSafeBootMode = 0; /* KB83764 */
|
|
||||||
|
|
||||||
extern ULONG MmCoreDumpType;
|
extern ULONG MmCoreDumpType;
|
||||||
extern CHAR KiTimerSystemAuditing;
|
|
||||||
extern PVOID Ki386InitialStackArray[MAXIMUM_PROCESSORS];
|
|
||||||
extern ADDRESS_RANGE KeMemoryMap[64];
|
|
||||||
extern ULONG KeMemoryMapRangeCount;
|
|
||||||
extern ULONG_PTR FirstKrnlPhysAddr;
|
|
||||||
extern ULONG_PTR LastKrnlPhysAddr;
|
|
||||||
extern ULONG_PTR LastKernelAddress;
|
|
||||||
extern LOADER_MODULE KeLoaderModules[64];
|
extern LOADER_MODULE KeLoaderModules[64];
|
||||||
extern ULONG KeLoaderModuleCount;
|
extern ULONG KeLoaderModuleCount;
|
||||||
extern PRTL_MESSAGE_RESOURCE_DATA KiBugCodeMessages;
|
extern PRTL_MESSAGE_RESOURCE_DATA KiBugCodeMessages;
|
||||||
|
|
||||||
BOOLEAN NoGuiBoot = FALSE;
|
BOOLEAN NoGuiBoot = FALSE;
|
||||||
static BOOLEAN BootLog = FALSE;
|
|
||||||
static ULONG MaxMem = 0;
|
|
||||||
static BOOLEAN ForceAcpiDisable = FALSE;
|
static BOOLEAN ForceAcpiDisable = FALSE;
|
||||||
|
|
||||||
BOOLEAN
|
|
||||||
NTAPI
|
|
||||||
PspInitPhase0(
|
|
||||||
VOID
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Init flags and settings */
|
/* Init flags and settings */
|
||||||
ULONG ExpInitializationPhase;
|
ULONG ExpInitializationPhase;
|
||||||
BOOLEAN ExpInTextModeSetup;
|
BOOLEAN ExpInTextModeSetup;
|
||||||
BOOLEAN IoRemoteBootClient;
|
BOOLEAN IoRemoteBootClient;
|
||||||
|
ULONG InitSafeBootMode;
|
||||||
|
|
||||||
/* Boot NLS information */
|
/* Boot NLS information */
|
||||||
PVOID ExpNlsTableBase;
|
PVOID ExpNlsTableBase;
|
||||||
|
@ -251,9 +234,7 @@ InitSystemSharedUserPage (PCSZ ParameterLine)
|
||||||
__inline
|
__inline
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
STDCALL
|
||||||
ParseCommandLine(PULONG MaxMem,
|
ParseCommandLine(PBOOLEAN NoGuiBoot,
|
||||||
PBOOLEAN NoGuiBoot,
|
|
||||||
PBOOLEAN BootLog,
|
|
||||||
PBOOLEAN ForceAcpiDisable)
|
PBOOLEAN ForceAcpiDisable)
|
||||||
{
|
{
|
||||||
PCHAR p1, p2;
|
PCHAR p1, p2;
|
||||||
|
@ -262,26 +243,7 @@ ParseCommandLine(PULONG MaxMem,
|
||||||
while(*p1 && (p2 = strchr(p1, '/'))) {
|
while(*p1 && (p2 = strchr(p1, '/'))) {
|
||||||
|
|
||||||
p2++;
|
p2++;
|
||||||
if (!_strnicmp(p2, "MAXMEM", 6)) {
|
if (!_strnicmp(p2, "NOGUIBOOT", 9)) {
|
||||||
|
|
||||||
p2 += 6;
|
|
||||||
while (isspace(*p2)) p2++;
|
|
||||||
|
|
||||||
if (*p2 == '=') {
|
|
||||||
|
|
||||||
p2++;
|
|
||||||
|
|
||||||
while(isspace(*p2)) p2++;
|
|
||||||
|
|
||||||
if (isdigit(*p2)) {
|
|
||||||
while (isdigit(*p2)) {
|
|
||||||
*MaxMem = *MaxMem * 10 + *p2 - '0';
|
|
||||||
p2++;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (!_strnicmp(p2, "NOGUIBOOT", 9)) {
|
|
||||||
|
|
||||||
p2 += 9;
|
p2 += 9;
|
||||||
*NoGuiBoot = TRUE;
|
*NoGuiBoot = TRUE;
|
||||||
|
@ -301,10 +263,6 @@ ParseCommandLine(PULONG MaxMem,
|
||||||
MmCoreDumpType = MM_CORE_DUMP_TYPE_NONE;
|
MmCoreDumpType = MM_CORE_DUMP_TYPE_NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (!_strnicmp(p2, "BOOTLOG", 7)) {
|
|
||||||
|
|
||||||
p2 += 7;
|
|
||||||
*BootLog = TRUE;
|
|
||||||
} else if (!_strnicmp(p2, "NOACPI", 6)) {
|
} else if (!_strnicmp(p2, "NOACPI", 6)) {
|
||||||
|
|
||||||
p2 += 6;
|
p2 += 6;
|
||||||
|
@ -514,19 +472,8 @@ ExpInitializeExecutive(IN ULONG Cpu,
|
||||||
{
|
{
|
||||||
PNLS_DATA_BLOCK NlsData;
|
PNLS_DATA_BLOCK NlsData;
|
||||||
|
|
||||||
/* Initialize Kernel Memory Address Space */
|
|
||||||
MmInit1(FirstKrnlPhysAddr,
|
|
||||||
LastKrnlPhysAddr,
|
|
||||||
LastKernelAddress,
|
|
||||||
(PADDRESS_RANGE)&KeMemoryMap,
|
|
||||||
KeMemoryMapRangeCount,
|
|
||||||
MaxMem > 8 ? MaxMem : 4096);
|
|
||||||
|
|
||||||
/* Sets up the Text Sections of the Kernel and HAL for debugging */
|
|
||||||
LdrInit1();
|
|
||||||
|
|
||||||
/* Parse Command Line Settings */
|
/* Parse Command Line Settings */
|
||||||
ParseCommandLine(&MaxMem, &NoGuiBoot, &BootLog, &ForceAcpiDisable);
|
ParseCommandLine(&NoGuiBoot, &ForceAcpiDisable);
|
||||||
|
|
||||||
/* FIXME: Deprecate soon */
|
/* FIXME: Deprecate soon */
|
||||||
ParseAndCacheLoadedModules();
|
ParseAndCacheLoadedModules();
|
||||||
|
@ -726,7 +673,7 @@ ExPhase2Init(PVOID Context)
|
||||||
DbgBreakPoint();
|
DbgBreakPoint();
|
||||||
|
|
||||||
/* Setup Drivers and Root Device Node */
|
/* Setup Drivers and Root Device Node */
|
||||||
IoInit2(BootLog);
|
IoInit2(FALSE);
|
||||||
|
|
||||||
/* Display the boot screen image if not disabled */
|
/* Display the boot screen image if not disabled */
|
||||||
if (!NoGuiBoot) InbvEnableBootDriver(TRUE);
|
if (!NoGuiBoot) InbvEnableBootDriver(TRUE);
|
||||||
|
@ -826,7 +773,6 @@ ExPhase2Init(PVOID Context)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Enable the Clock, close remaining handles */
|
/* Enable the Clock, close remaining handles */
|
||||||
KiTimerSystemAuditing = 1;
|
|
||||||
ZwClose(ThreadHandle);
|
ZwClose(ThreadHandle);
|
||||||
ZwClose(ProcessHandle);
|
ZwClose(ProcessHandle);
|
||||||
|
|
||||||
|
|
|
@ -67,6 +67,12 @@ struct _KPCR;
|
||||||
struct _KPRCB;
|
struct _KPRCB;
|
||||||
struct _KEXCEPTION_FRAME;
|
struct _KEXCEPTION_FRAME;
|
||||||
|
|
||||||
|
extern ADDRESS_RANGE KeMemoryMap[64];
|
||||||
|
extern ULONG KeMemoryMapRangeCount;
|
||||||
|
extern ULONG_PTR FirstKrnlPhysAddr;
|
||||||
|
extern ULONG_PTR LastKrnlPhysAddr;
|
||||||
|
extern ULONG_PTR LastKernelAddress;
|
||||||
|
|
||||||
extern PVOID KeUserApcDispatcher;
|
extern PVOID KeUserApcDispatcher;
|
||||||
extern PVOID KeUserCallbackDispatcher;
|
extern PVOID KeUserCallbackDispatcher;
|
||||||
extern PVOID KeUserExceptionDispatcher;
|
extern PVOID KeUserExceptionDispatcher;
|
||||||
|
|
|
@ -79,6 +79,12 @@ PspShutdownProcessManager(
|
||||||
VOID
|
VOID
|
||||||
);
|
);
|
||||||
|
|
||||||
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
|
PspInitPhase0(
|
||||||
|
VOID
|
||||||
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Utility Routines
|
// Utility Routines
|
||||||
//
|
//
|
||||||
|
|
|
@ -35,7 +35,6 @@ LARGE_INTEGER SystemBootTime = (LARGE_INTEGER)0LL;
|
||||||
LARGE_INTEGER SystemBootTime = { 0 };
|
LARGE_INTEGER SystemBootTime = { 0 };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CHAR KiTimerSystemAuditing = 0;
|
|
||||||
KDPC KiExpireTimerDpc;
|
KDPC KiExpireTimerDpc;
|
||||||
BOOLEAN KiClockSetupComplete = FALSE;
|
BOOLEAN KiClockSetupComplete = FALSE;
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
#include <ntoskrnl.h>
|
#include <ntoskrnl.h>
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <intrin.h>
|
|
||||||
|
|
||||||
/* GLOBALS *******************************************************************/
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
||||||
|
@ -164,6 +163,17 @@ KiInitializeKernel(IN PKPROCESS InitProcess,
|
||||||
DPRINT1("SMP Boot support not yet present\n");
|
DPRINT1("SMP Boot support not yet present\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Initialize Kernel Memory Address Space */
|
||||||
|
MmInit1(FirstKrnlPhysAddr,
|
||||||
|
LastKrnlPhysAddr,
|
||||||
|
LastKernelAddress,
|
||||||
|
(PADDRESS_RANGE)&KeMemoryMap,
|
||||||
|
KeMemoryMapRangeCount,
|
||||||
|
4096);
|
||||||
|
|
||||||
|
/* Sets up the Text Sections of the Kernel and HAL for debugging */
|
||||||
|
LdrInit1();
|
||||||
|
|
||||||
/* Setup the Idle Thread */
|
/* Setup the Idle Thread */
|
||||||
KeInitializeThread(InitProcess,
|
KeInitializeThread(InitProcess,
|
||||||
InitThread,
|
InitThread,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue