ports/graphics/igt-gpu-tools/files/patch-lib_igt__os.c
Jake Freeland 5d303ab480
graphics/igt-gpu-tools: Test suite for drm drivers
The igt testing suite is separated into tests and tools that target kms,
memory management, and command submission.  These tests are especially
helpful for low-level reporting, transparent tracking of kernel changes,
and efficient debugging of modern drm drivers.

Reviewed by:	diizzy, lwhsu, jrm
Differential Revision:	https://reviews.freebsd.org/D36213
2022-09-09 12:06:45 -03:00

42 lines
1.2 KiB
C

--- lib/igt_os.c.orig 2022-08-31 20:00:01 UTC
+++ lib/igt_os.c
@@ -44,6 +44,9 @@
#include <sys/sysinfo.h>
#elif defined(HAVE_SWAPCTL) /* Solaris */
#include <sys/swap.h>
+#elif defined(__FreeBSD__)
+#include <sys/sysctl.h>
+#include <sys/types.h>
#endif
#include <sys/resource.h>
@@ -148,6 +151,15 @@ igt_get_avail_ram_mb(void)
npages = sysconf(_SC_AVPHYS_PAGES);
retval = (uint64_t) pagesize * npages;
+#elif defined(__FreeBSD__) /* FreeBSD */
+ uint64_t npages, pagesize;
+ size_t npages_len = sizeof(npages);
+ size_t pagesize_len = sizeof(pagesize);
+
+ sysctlbyname("vm.stats.vm.v_free_count", &npages, &npages_len, NULL, 0);
+ sysctlbyname("vm.stats.vm.v_page_size", &pagesize, &pagesize_len, NULL, 0);
+
+ retval = pagesize * npages;
#else
#error "Unknown how to get available RAM for this OS"
#endif
@@ -210,6 +222,13 @@ igt_get_total_swap_mb(void)
free(buf);
retval = (uint64_t) pagesize * totalpages;
+#elif defined(__FreeBSD__) /* FreeBSD */
+ uint64_t swap_total;
+ size_t swap_total_len = sizeof(swap_total);
+
+ sysctlbyname("vm.swap_total", &swap_total, &swap_total_len, NULL, 0);
+
+ retval = swap_total;
#else
#warning "Unknown how to get swap size for this OS"
return 0;