From 22648bd3344c6cce341cf14bd23d0994b6c682c7 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 17 Oct 2013 20:49:30 -0700 Subject: [PATCH] Fix to unbreak SDL_GetSystemRAM() on FreeBSD Marcus von Appen Revision c47ae79f0de8 of the SDL hg repo introduces the new SDL_GetSystemRAM() function, which breaks the build on FreeBSD. Find attached a patch, which unbreaks the build and also should (for most cases) properly implement the sysctl support it. --- src/cpuinfo/SDL_cpuinfo.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/cpuinfo/SDL_cpuinfo.c b/src/cpuinfo/SDL_cpuinfo.c index d39075f15..5e048f9c3 100644 --- a/src/cpuinfo/SDL_cpuinfo.c +++ b/src/cpuinfo/SDL_cpuinfo.c @@ -620,7 +620,16 @@ SDL_GetSystemRAM(void) #endif #ifdef HAVE_SYSCTLBYNAME if (SDL_SystemRAM <= 0) { +#ifdef __FreeBSD__ +#ifdef HW_REALMEM + int mib[2] = {CTL_HW, HW_REALMEM}; +#else + /* might only report up to 2 GiB */ + int mib[2] = {CTL_HW, HW_PHYSMEM}; +#endif /* HW_REALMEM */ +#else int mib[2] = {CTL_HW, HW_MEMSIZE}; +#endif /* __FreeBSD__ */ Uint64 memsize = 0; size_t len = sizeof(memsize);