util/os_misc: os_get_available_system_memory() for FreeBSD
authorEmmanuel Vadot <manu@FreeBSD.org>
Sun, 4 Oct 2020 09:00:49 +0000 (11:00 +0200)
committerMarge Bot <eric+marge@anholt.net>
Fri, 9 Oct 2020 09:49:20 +0000 (09:49 +0000)
Based on the OpenBSD variant.
The only difference between those two system is the sysctl mib.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6995>

src/util/os_misc.c

index e184edc..28a6d1e 100644 (file)
@@ -58,7 +58,7 @@
 #  include <log/log.h>
 #elif DETECT_OS_LINUX || DETECT_OS_CYGWIN || DETECT_OS_SOLARIS || DETECT_OS_HURD
 #  include <unistd.h>
-#elif DETECT_OS_OPENBSD
+#elif DETECT_OS_OPENBSD || DETECT_OS_FREEBSD
 #  include <sys/resource.h>
 #  include <sys/sysctl.h>
 #elif DETECT_OS_APPLE || DETECT_OS_BSD
@@ -213,9 +213,13 @@ os_get_available_system_memory(uint64_t *size)
 
    free(meminfo);
    return false;
-#elif DETECT_OS_OPENBSD
+#elif DETECT_OS_OPENBSD || DETECT_OS_FREEBSD
    struct rlimit rl;
+#if DETECT_OS_OPENBSD
    int mib[] = { CTL_HW, HW_USERMEM64 };
+#elif DETECT_OS_FREEBSD
+   int mib[] = { CTL_HW, HW_USERMEM };
+#endif
    int64_t mem_available;
    size_t len = sizeof(mem_available);