- Removed the 'shadow' NtGlobalFlag from ntdll.dll.  
- Initialized NumberOfProcessors from the PEB structure.
Modified: trunk/reactos/include/ntdll/ntdll.h
Modified: trunk/reactos/lib/ntdll/ldr/startup.c
Modified: trunk/reactos/lib/ntdll/ldr/utils.c
Modified: trunk/reactos/lib/ntdll/rtl/misc.c
Modified: trunk/reactos/lib/rtl/version.c
Modified: trunk/reactos/ntoskrnl/Makefile
Added: trunk/reactos/ntoskrnl/rtl/misc.c

Modified: trunk/reactos/include/ntdll/ntdll.h
--- trunk/reactos/include/ntdll/ntdll.h	2005-01-04 14:46:06 UTC (rev 12789)
+++ trunk/reactos/include/ntdll/ntdll.h	2005-01-04 16:23:29 UTC (rev 12790)
@@ -17,7 +17,7 @@
 
 #ifdef NDEBUG
 #if defined(__GNUC__)
-#define TRACE_LDR(args...) if (NtGlobalFlag & FLG_SHOW_LDR_SNAPS) { DbgPrint("(LDR:%s:%d) ",__FILE__,__LINE__); DbgPrint(args); }
+#define TRACE_LDR(args...) if (RtlGetNtGlobalFlags() & FLG_SHOW_LDR_SNAPS) { DbgPrint("(LDR:%s:%d) ",__FILE__,__LINE__); DbgPrint(args); }
 #define DPRINT(args...)
 #else
 #define DPRINT

Modified: trunk/reactos/lib/ntdll/ldr/startup.c
--- trunk/reactos/lib/ntdll/ldr/startup.c	2005-01-04 14:46:06 UTC (rev 12789)
+++ trunk/reactos/lib/ntdll/ldr/startup.c	2005-01-04 16:23:29 UTC (rev 12790)
@@ -37,8 +37,6 @@
 static RTL_BITMAP TlsBitMap;
 PLDR_MODULE ExeModule;
 
-ULONG NtGlobalFlag = 0;
-
 NTSTATUS LdrpAttachThread (VOID);
 
 
@@ -102,7 +100,6 @@
 	 *   read more options 
          */
       }
-    NtGlobalFlag = Peb->NtGlobalFlag;
 }
 
 
@@ -242,6 +239,8 @@
    PLDR_MODULE NtModule;  // ntdll
    NLSTABLEINFO NlsTable;
    WCHAR FullNtDllPath[MAX_PATH];
+   SYSTEM_BASIC_INFORMATION SystemInformation;
+   NTSTATUS Status;
 
    DPRINT("LdrInitializeThunk()\n");
    if (NtCurrentPeb()->Ldr == NULL || NtCurrentPeb()->Ldr->Initialized == FALSE)
@@ -280,6 +279,18 @@
 
        NTHeaders = (PIMAGE_NT_HEADERS)(ImageBase + PEDosHeader->e_lfanew);
       
+
+       /* Get number of processors */
+       Status = ZwQuerySystemInformation(SystemBasicInformation,
+	                                 &SystemInformation,
+					 sizeof(SYSTEM_BASIC_INFORMATION),
+					 NULL);
+       if (!NT_SUCCESS(Status))
+         {
+	   ZwTerminateProcess(NtCurrentProcess(), Status);
+	 }
+
+       Peb->NumberOfProcessors = SystemInformation.NumberProcessors;
        /* create process heap */
        RtlInitializeHeapManager();
        Peb->ProcessHeap = RtlCreateHeap(HEAP_GROWABLE,

Modified: trunk/reactos/lib/ntdll/ldr/utils.c
--- trunk/reactos/lib/ntdll/ldr/utils.c	2005-01-04 14:46:06 UTC (rev 12789)
+++ trunk/reactos/lib/ntdll/ldr/utils.c	2005-01-04 16:23:29 UTC (rev 12790)
@@ -1,4 +1,4 @@
-/* $Id: utils.c,v 1.104 2004/12/25 11:18:51 navaraf Exp $
+/* $Id$
  * 
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -51,7 +51,6 @@
 static HANDLE LdrpKnownDllsDirHandle = NULL;
 static UNICODE_STRING LdrpKnownDllPath = {0, 0, NULL};
 static PLDR_MODULE LdrpLastModule = NULL;
-extern ULONG NtGlobalFlag;
 extern PLDR_MODULE ExeModule;
 
 /* PROTOTYPES ****************************************************************/

Modified: trunk/reactos/lib/ntdll/rtl/misc.c
--- trunk/reactos/lib/ntdll/rtl/misc.c	2005-01-04 14:46:06 UTC (rev 12789)
+++ trunk/reactos/lib/ntdll/rtl/misc.c	2005-01-04 16:23:29 UTC (rev 12790)
@@ -1,4 +1,4 @@
-/* $Id: misc.c,v 1.11 2004/12/13 23:11:13 navaraf Exp $
+/* $Id$
  *
  * COPYRIGHT:         See COPYING in the top level directory
  * PROJECT:           ReactOS kernel
@@ -96,3 +96,14 @@
 		*build = (0xF0000000 | pPeb->OSBuildNumber);
 	}
 }
+
+/*
+* @implemented
+*/
+ULONG
+STDCALL
+RtlGetNtGlobalFlags(VOID)
+{   
+	PPEB pPeb = NtCurrentPeb();
+	return pPeb->NtGlobalFlag;
+}

Modified: trunk/reactos/lib/rtl/version.c
--- trunk/reactos/lib/rtl/version.c	2005-01-04 14:46:06 UTC (rev 12789)
+++ trunk/reactos/lib/rtl/version.c	2005-01-04 16:23:29 UTC (rev 12790)
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: version.c,v 1.4 2004/11/07 18:45:52 hyperion Exp $
+/* $Id$
  *
  * PROJECT:           ReactOS kernel
  * PURPOSE:           Runtime code
@@ -36,7 +36,6 @@
 
 /* GLOBALS ******************************************************************/
 
-extern ULONG NtGlobalFlag;
 
 /* FUNCTIONS ****************************************************************/
 
@@ -72,16 +71,6 @@
 }
 
 /*
-* @implemented
-*/
-ULONG
-STDCALL
-RtlGetNtGlobalFlags(VOID)
-{
-	return(NtGlobalFlag);
-}
-
-/*
 * @unimplemented
 */
 /*

Modified: trunk/reactos/ntoskrnl/Makefile
--- trunk/reactos/ntoskrnl/Makefile	2005-01-04 14:46:06 UTC (rev 12789)
+++ trunk/reactos/ntoskrnl/Makefile	2005-01-04 16:23:29 UTC (rev 12790)
@@ -100,6 +100,7 @@
 	rtl/ctype.o \
 	rtl/handle.o \
 	rtl/message.o \
+	rtl/misc.o \
 	rtl/purecall.o \
 	rtl/regio.o \
 	rtl/sprintf.o \

Added: trunk/reactos/ntoskrnl/rtl/misc.c
--- trunk/reactos/ntoskrnl/rtl/misc.c	2005-01-04 14:46:06 UTC (rev 12789)
+++ trunk/reactos/ntoskrnl/rtl/misc.c	2005-01-04 16:23:29 UTC (rev 12790)
@@ -0,0 +1,32 @@
+/* $Id$
+ *
+ * COPYRIGHT:         See COPYING in the top level directory
+ * PROJECT:           ReactOS kernel
+ * PURPOSE:           Various functions
+ * FILE:              lib/ntoskrnl/rtl/misc.c
+ * PROGRAMER:         Hartmut Birr
+ * REVISION HISTORY:
+ *                    01/03/2005: Created
+ */
+
+/* INCLUDES *****************************************************************/
+
+#include <ntoskrnl.h>
+#define NDEBUG
+#include <internal/debug.h>
+
+/* GLOBALS *******************************************************************/
+
+extern ULONG NtGlobalFlag;
+
+/* FUNCTIONS *****************************************************************/
+
+/*
+* @implemented
+*/
+ULONG
+STDCALL
+RtlGetNtGlobalFlags(VOID)
+{
+	return(NtGlobalFlag);
+}