summaryrefslogtreecommitdiff
path: root/parallel/sge/patches/patch-az
blob: 4cffbaa89a584caf6bcc7cdd3abf6988a9e53346 (plain)
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
34
$NetBSD: patch-az,v 1.1.1.1 2004/05/03 00:38:35 dmcmahill Exp $

--- source/libs/uti/sge_loadmem.c	2003-10-02 14:25:50.000000000 +0200
+++ source/libs/uti/sge_loadmem.c	2003-10-01 16:36:46.000000000 +0200
@@ -812,3 +812,29 @@
    return 0;
 }
 #endif /* FREEBSD */
+
+#if defined(NETBSD)
+
+#include <sys/param.h>
+#include <sys/sysctl.h>
+
+int loadmem(sge_mem_info_t *mem_info) {
+  int mib[2];
+  size_t size;
+  struct uvmexp_sysctl uvmexp;
+
+  mib[0] = CTL_VM; mib[1] = VM_UVMEXP2;
+  size = sizeof(uvmexp);
+  sysctl(mib, 2, &uvmexp, &size, NULL, 0);
+
+  /* Memory */
+  mem_info->mem_total = (uvmexp.npages * uvmexp.pagesize) / (1024 * 1024);
+  mem_info->mem_free = (uvmexp.free * uvmexp.pagesize) / (1024 * 1024);
+
+  /* Swap */
+  mem_info->swap_total = (uvmexp.swpages * uvmexp.pagesize) / (1024 * 1024);
+  mem_info->swap_free = ((uvmexp.swpages - uvmexp.swpginuse) * uvmexp.pagesize) / (1024 * 1024);
+
+  return 0; }
+
+#endif /* NETBSD */