ports/math/scilab/files/patch-modules-core-src-c-getmemory.c
Wen Heping 01eca2900d - Unbreak it and update to 5.2.0
PR:		ports/143867
Submitted by:	Rob Farmer <rfarmer@predatorlabs.net>
Approved by:	maintainer
Feature safe:	yes
2010-02-25 02:09:17 +00:00

28 lines
822 B
C

--- modules/core/src/c/getmemory.c.orig 2009-12-16 07:24:40.000000000 +0000
+++ modules/core/src/c/getmemory.c 2010-01-06 19:27:34.939739546 +0000
@@ -25,8 +25,12 @@
#include <sys/sysctl.h>
#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
#define PAGESHIFT_UNDEF -100
+#elif defined(__FreeBSD__)
+#include <sys/param.h>
+#include <sys/sysctl.h>
#endif
+
#include <stdio.h>
#define kooctet 1024
int getfreememory(void)
@@ -160,6 +164,12 @@
return 0;
}
+#elif defined(__FreeBSD__)
+ int avphys_pages;
+ size_t oldlenp = sizeof (avphys_pages);
+ sysctlbyname("vm.stats.vm.v_free_count", &avphys_pages, &oldlenp, NULL, NULL);
+ return (avphys_pages / kooctet) * sysconf(_SC_PAGESIZE);
+
#else
/* Solaris and others assumed*/
return (sysconf(_SC_AVPHYS_PAGES)/kooctet)*sysconf(_SC_PAGESIZE);