kernel32: implement CPU detection for OpenBSD
Francois Gouget
fgouget at free.fr
Fri Jan 9 02:06:57 CST 2009
On Fri, 2 Jan 2009, Austin English wrote:
@@ -544,7 +544,7 @@ VOID WINAPI GetSystemInfo(
}
fclose (f);
}
-#elif defined (__NetBSD__)
+#elif defined (__NetBSD__) || defined(__OpenBSD__)
{
int mib[2];
int value[2];
@@ -557,31 +557,55 @@ VOID WINAPI GetSystemInfo(
#ifdef CPU_FPU_PRESENT
mib[1] = CPU_FPU_PRESENT;
value[1] = sizeof(int);
- if (sysctl(mib, 2, value, value+1, NULL, 0) >= 0)
+#ifdef __OpenBSD__
+ if (sysctl(mib, 2, value, (size_t *)(value+1), NULL, 0) >=
0) {
+#else
+ if (sysctl(mib, 2, value, value+1, NULL, 0) >= 0) {
+#endif
This was wrong to start with because even if size_t is 8 bytes, value+1
will only have space for 4. Plus the code tests whether value changed
instead of testing *value! I'm sending a patch to fix that. Then you can
resend your patch adding just the defined(__OpenBSD__).
--
Francois Gouget <fgouget at free.fr> http://fgouget.free.fr/
A polar bear is a cartesian bear after a coordinate transform.
More information about the wine-patches
mailing list