Prechádzať zdrojové kódy

Fix to unbreak SDL_GetSystemRAM() on FreeBSD

Marcus von Appen

Revision eecbcfed77c9 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.
Sam Lantinga 12 rokov pred
rodič
commit
95dc9940a2
1 zmenil súbory, kde vykonal 9 pridanie a 0 odobranie
  1. 9 0
      src/cpuinfo/SDL_cpuinfo.c

+ 9 - 0
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);