Alexandre Julliard : ntdll: Make the CPU information global.

Alexandre Julliard julliard at winehq.org
Thu Feb 14 16:19:12 CST 2019


Module: wine
Branch: master
Commit: 5ecea501704f7ac1f1a9c6db8ca787ce79394e8c
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=5ecea501704f7ac1f1a9c6db8ca787ce79394e8c

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Feb 14 19:41:34 2019 +0100

ntdll: Make the CPU information global.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/nt.c         | 13 ++++++-------
 dlls/ntdll/ntdll_misc.h |  1 +
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index 5138da4..0a59947 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -926,7 +926,7 @@ NTSTATUS WINAPI NtSetIntervalProfile(
     return STATUS_SUCCESS;
 }
 
-static  SYSTEM_CPU_INFORMATION cached_sci;
+SYSTEM_CPU_INFORMATION cpu_info = { 0 };
 
 /*******************************************************************************
  * Architecture specific feature detection for CPUs
@@ -1305,7 +1305,7 @@ static inline void get_cpuinfo(SYSTEM_CPU_INFORMATION* info)
  *		fill_cpu_info
  *
  * inits a couple of places with CPU related information:
- * - cached_sci in this file
+ * - cpu_info in this file
  * - Peb->NumberOfProcessors
  * - SharedUserData->ProcessFeatures[] array
  */
@@ -1336,11 +1336,10 @@ void fill_cpu_info(void)
 #endif
     NtCurrentTeb()->Peb->NumberOfProcessors = num;
 
-    memset(&cached_sci, 0, sizeof(cached_sci));
-    get_cpuinfo(&cached_sci);
+    get_cpuinfo(&cpu_info);
 
     TRACE("<- CPU arch %d, level %d, rev %d, features 0x%x\n",
-          cached_sci.Architecture, cached_sci.Level, cached_sci.Revision, cached_sci.FeatureSet);
+          cpu_info.Architecture, cpu_info.Level, cpu_info.Revision, cpu_info.FeatureSet);
 }
 
 static BOOL grow_logical_proc_buf(SYSTEM_LOGICAL_PROCESSOR_INFORMATION **pdata,
@@ -2287,10 +2286,10 @@ NTSTATUS WINAPI NtQuerySystemInformation(
         }
         break;
     case SystemCpuInformation:
-        if (Length >= (len = sizeof(cached_sci)))
+        if (Length >= (len = sizeof(cpu_info)))
         {
             if (!SystemInformation) ret = STATUS_ACCESS_VIOLATION;
-            else memcpy(SystemInformation, &cached_sci, len);
+            else memcpy(SystemInformation, &cpu_info, len);
         }
         else ret = STATUS_INFO_LENGTH_MISMATCH;
         break;
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
index 5bfc8a9..5afb17f 100644
--- a/dlls/ntdll/ntdll_misc.h
+++ b/dlls/ntdll/ntdll_misc.h
@@ -248,6 +248,7 @@ static inline struct ntdll_thread_data *ntdll_get_thread_data(void)
 
 extern mode_t FILE_umask DECLSPEC_HIDDEN;
 extern HANDLE keyed_event DECLSPEC_HIDDEN;
+extern SYSTEM_CPU_INFORMATION cpu_info DECLSPEC_HIDDEN;
 
 #define HASH_STRING_ALGORITHM_DEFAULT  0
 #define HASH_STRING_ALGORITHM_X65599   1




More information about the wine-cvs mailing list