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__)
|