summaryrefslogtreecommitdiff
path: root/emulators/wine-devel/patches/patch-ah
blob: c4b1b65a3a747849ca0931eb91c128ae8e33e77a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
$NetBSD: patch-ah,v 1.3 2009/01/17 10:11:14 adam Exp $

--- dlls/kernel32/cpu.c.orig	2009-01-17 08:46:08.000000000 +0100
+++ dlls/kernel32/cpu.c
@@ -551,7 +551,7 @@ VOID WINAPI GetSystemInfo(
              size_t val_len;
              char model[256];
              char *cpuclass;
-             FILE *f = fopen ("/var/run/dmesg.boot", "r");
+             //FILE *f = fopen ("/var/run/dmesg.boot", "r");
 
              /* first deduce as much as possible from the sysctls */
              mib[0] = CTL_MACHDEP;
@@ -570,7 +570,7 @@ VOID WINAPI GetSystemInfo(
 #endif
 #ifdef CPU_SSE2
              mib[1] = CPU_SSE2;  /* this should imply MMX */
-             value[1] = sizeof(value);
+             val_len = sizeof(value);
              if (sysctl(mib, 2, &value, &val_len, NULL, 0) >= 0)
                  if (value) PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE;
 #endif
@@ -579,7 +579,7 @@ VOID WINAPI GetSystemInfo(
              val_len = sizeof(value);
              if (sysctl(mib, 2, &value, &val_len, NULL, 0) >= 0)
                  if (value > cachedsi.dwNumberOfProcessors)
-                    cachedsi.dwNumberOfProcessors = value[0];
+                    cachedsi.dwNumberOfProcessors = value;
              mib[1] = HW_MODEL;
              val_len = sizeof(model)-1;
              if (sysctl(mib, 2, model, &val_len, NULL, 0) >= 0) {
@@ -612,19 +612,20 @@ VOID WINAPI GetSystemInfo(
                 additional information such as CX8, MMX and TSC
                 (however this information should be considered less
                  reliable than that from the sysctl calls) */
+#if 0
              if (f != NULL)
              {
 	         while (fgets(model, 255, f) != NULL) {
                         if (sscanf(model,"cpu%d: features %x<", value, value+1) == 2) {
                             /* we could scan the string but it is easier
                                to test the bits directly */
-                            if (value[1] & 0x1)
+                            if (value & 0x1)
                                 PF[PF_FLOATING_POINT_EMULATED] = TRUE;
-                            if (value[1] & 0x10)
+                            if (value & 0x10)
                                 PF[PF_RDTSC_INSTRUCTION_AVAILABLE] = TRUE;
-                            if (value[1] & 0x100)
+                            if (value & 0x100)
                                 PF[PF_COMPARE_EXCHANGE_DOUBLE] = TRUE;
-                            if (value[1] & 0x800000)
+                            if (value & 0x800000)
                                 PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE;
 
                             break;
@@ -632,6 +633,7 @@ VOID WINAPI GetSystemInfo(
                  }
                  fclose(f);
              }
+#endif
 
         }
 #elif defined(__FreeBSD__)