From b821ded96cc4c6bbee1f66047c1627df8c7c0d5f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 21 Aug 2017 13:00:40 -0700 Subject: [PATCH] SDL_cpuinfo.c: add os/2 support to SDL_GetCPUCount() and SDL_GetSystemRAM(). --- src/cpuinfo/SDL_cpuinfo.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/cpuinfo/SDL_cpuinfo.c b/src/cpuinfo/SDL_cpuinfo.c index 6db2c2dfdae8b..968d73e80cbeb 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 +#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;