فهرست منبع

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 سال پیش
والد
کامیت
95dc9940a2
1فایلهای تغییر یافته به همراه9 افزوده شده و 0 حذف شده
  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);