aboutsummaryrefslogtreecommitdiff
path: root/lang/erlang14/files/patch-ag
blob: b32003f79b65a3e3aaa3eeb96b73dce2c121dc54 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
--- lib/os_mon/c_src/memsup.c.orig	Mon Sep 20 23:05:24 1999
+++ lib/os_mon/c_src/memsup.c	Sat Dec  2 22:23:25 2000
@@ -89,6 +89,12 @@
 #include <ioLib.h>
 #include <memLib.h>
 #endif
+#ifdef __FreeBSD__
+#include <sys/types.h>
+#include <sys/sysctl.h>
+#include <sys/vmmeter.h>
+#include <vm/vm_param.h>
+#endif
 
 /* commands */
 #include "memsup.h"
@@ -172,6 +178,16 @@
     load_statistics();
     *tot = (latest.numBytesFree + latest.numBytesAlloc) >> shiftleft;
     *used = latest.numBytesAlloc >> shiftleft;
+#elif defined(__FreeBSD__)
+    int mib[2];
+    size_t len;
+    struct vmtotal memory;
+    mib[0] = CTL_VM;
+    mib[1] = VM_METER;
+    len = sizeof memory;
+    sysctl(mib, 2, &memory, &len, NULL, 0);
+    *tot = memory.t_vm >> shiftleft;
+    *used = memory.t_avm >> shiftleft;
 #elif defined(_SC_AVPHYS_PAGES)	/* Does this exist on others than Solaris2? */
     unsigned long avPhys, phys, pgSz;
     
# End