SDL_cpuinfo.c: add os/2 support to SDL_GetCPUCount() and SDL_GetSystemRAM().
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
diff --git a/src/cpuinfo/SDL_cpuinfo.c b/src/cpuinfo/SDL_cpuinfo.c
index 6db2c2d..968d73e 100644
--- a/src/cpuinfo/SDL_cpuinfo.c
+++ b/src/cpuinfo/SDL_cpuinfo.c
@@ -27,6 +27,13 @@
#if defined(__WIN32__)
#include "../core/windows/SDL_windows.h"
#endif
+#if defined(__OS2__)
+#define INCL_DOS
+#include <os2.h>
+#ifndef QSV_NUMPROCESSORS
+#define QSV_NUMPROCESSORS 26
+#endif
+#endif
/* CPU feature detection for SDL */
@@ -418,6 +425,12 @@ SDL_GetCPUCount(void)
SDL_CPUCount = info.dwNumberOfProcessors;
}
#endif
+#ifdef __OS2__
+ if (SDL_CPUCount <= 0) {
+ DosQuerySysInfo(QSV_NUMPROCESSORS, QSV_NUMPROCESSORS,
+ &SDL_CPUCount, sizeof(SDL_CPUCount) );
+ }
+#endif
#endif
/* There has to be at least 1, right? :) */
if (SDL_CPUCount <= 0) {
@@ -719,6 +732,13 @@ SDL_GetSystemRAM(void)
}
}
#endif
+#ifdef __OS2__
+ if (SDL_SystemRAM <= 0) {
+ Uint32 sysram = 0;
+ DosQuerySysInfo(QSV_TOTPHYSMEM, QSV_TOTPHYSMEM, &sysram, 4);
+ SDL_SystemRAM = (int) (sysram / 0x100000U);
+ }
+#endif
#endif
}
return SDL_SystemRAM;