ULONG CmNtCSDReleaseType;
UNICODE_STRING CmVersionString;
UNICODE_STRING CmCSDVersionString;
-CHAR NtBuildLab[] = KERNEL_VERSION_BUILD_STR;
+
+CHAR NtBuildLab[] = KERNEL_VERSION_BUILD_STR "."
+ REACTOS_COMPILER_NAME "_" REACTOS_COMPILER_VERSION;
/* Init flags and settings */
ULONG ExpInitializationPhase;
/* FUNCTIONS ****************************************************************/
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
ExpCreateSystemRootLink(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
UNICODE_STRING LinkName;
return STATUS_SUCCESS;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExpInitNls(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
LARGE_INTEGER SectionSize;
ExpNlsTableBase = SectionBase;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExpLoadInitialProcess(IN PINIT_BUFFER InitBuffer,
OUT PRTL_USER_PROCESS_PARAMETERS *ProcessParameters,
OUT PCHAR *ProcessEnvironment)
*ProcessEnvironment = EnvironmentPtr;
}
+INIT_FUNCTION
ULONG
NTAPI
-INIT_FUNCTION
ExComputeTickCountMultiplier(IN ULONG ClockIncrement)
{
ULONG MsRemainder = 0, MsIncrement;
return (MsIncrement << 24) | MsRemainder;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
ExpInitSystemPhase0(VOID)
{
/* Initialize EXRESOURCE Support */
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
ExpInitSystemPhase1(VOID)
{
/* Initialize worker threads */
}
/* Initialize UUIDs */
- ExpInitUuids();
+ if (ExpUuidInitialization() == FALSE)
+ {
+ DPRINT1("Executive: Uuid initialization failed\n");
+ return FALSE;
+ }
/* Initialize keyed events */
if (ExpInitializeKeyedEventImplementation() == FALSE)
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
ExInitSystem(VOID)
{
/* Check the initialization phase */
}
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
ExpIsLoaderValid(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PLOADER_PARAMETER_EXTENSION Extension;
return TRUE;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExpLoadBootSymbols(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
ULONG i = 0;
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExBurnMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN ULONG_PTR PagesToDestroy,
IN TYPE_OF_MEMORY MemoryType)
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExpInitializeExecutive(IN ULONG Cpu,
IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
if (LoaderBlock->SetupLdrBlock)
{
/* Check if this is text-mode setup */
- if (LoaderBlock->SetupLdrBlock->Flags & SETUPLDR_TEXT_MODE) ExpInTextModeSetup = TRUE;
+ if (LoaderBlock->SetupLdrBlock->Flags & SETUPLDR_TEXT_MODE)
+ ExpInTextModeSetup = TRUE;
/* Check if this is network boot */
if (LoaderBlock->SetupLdrBlock->Flags & SETUPLDR_REMOTE_BOOT)
NTAPI
MmFreeLoaderBlock(IN PLOADER_PARAMETER_BLOCK LoaderBlock);
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
Phase1InitializationDiscard(IN PVOID Context)
{
PLOADER_PARAMETER_BLOCK LoaderBlock = Context;
/* Setup the boot driver */
InbvEnableBootDriver(!NoGuiBoot);
- InbvDriverInitialize(LoaderBlock, 18);
+ InbvDriverInitialize(LoaderBlock, IDB_MAX_RESOURCE);
/* Check if GUI boot is enabled */
if (!NoGuiBoot)
if (CmCSDVersionString.Length)
{
/* Print the version string */
- /* ReactOS specific: Append also the revision number */
Status = RtlStringCbPrintfExA(StringBuffer,
Remaining,
&EndBuffer,
&Remaining,
0,
- " r%u"
": %wZ",
- KERNEL_VERSION_BUILD_HEX,
&CmCSDVersionString);
if (!NT_SUCCESS(Status))
{
if (NT_SUCCESS(MsgStatus))
{
/* Create the banner message */
+ /* ReactOS specific: Report ReactOS version, NtBuildLab information and reported NT kernel version */
Status = RtlStringCbPrintfA(EndBuffer,
Remaining,
(PCHAR)MsgEntry->Text,
+ KERNEL_VERSION_STR,
+ NtBuildLab,
StringBuffer,
NtBuildNumber & 0xFFFF,
BeginBuffer);
if (!PoInitSystem(0)) KeBugCheck(INTERNAL_POWER_ERROR);
/* Check for Y2K hack */
- Y2KHackRequired = strstr(CommandLine, "YEAR");
+ Y2KHackRequired = CommandLine ? strstr(CommandLine, "YEAR") : NULL;
if (Y2KHackRequired) Y2KHackRequired = strstr(Y2KHackRequired, "=");
if (Y2KHackRequired) YearHack = atol(Y2KHackRequired + 1);
WINDOWS_NT_INFO_STRING,
&MsgEntry);
- /* Get total RAM size */
- Size = MmNumberOfPhysicalPages * PAGE_SIZE / 1024 / 1024;
+ /* Get total RAM size, in MiB */
+ /* Round size up. Assumed to better match actual physical RAM size */
+ Size = ALIGN_UP_BY(MmNumberOfPhysicalPages * PAGE_SIZE, 1024 * 1024) / (1024 * 1024);
/* Create the string */
StringBuffer = InitBuffer->VersionBuffer;
sizeof(InitBuffer->VersionBuffer),
NT_SUCCESS(MsgStatus) ?
(PCHAR)MsgEntry->Text :
- "%u System Processor [%u MB Memory] %Z\r\n",
+ "%u System Processor [%Iu MB Memory] %Z\r\n",
KeNumberProcessors,
Size,
&TempString);